Hallo,
ich möchte eine Oracle 10g ExpressEdition-Datenbank mittels ADOdb abfragen.
Der Kontakt zur Datenbank funktioniert. Das Problem aber sind die Groß- und Kleinschreibungen in den Tabellen und Abfragen. In der Oracle-Datenbank sind alle Tabellen- und Feldnamen groß geschrieben.
Der PHP-Code, der die Tabelle abfragt sieht folgendermaßen aus:
PHP-Code:
$db = db_connect();
$sql = "SELECT * FROM intblLaender ORDER BY Land";
$result = $db->Execute($sql);
while ($row = $result->FetchRow())
{
if ($row[Kuerzel] == $_POST['Land'])
{
echo "<option selected>$row[Kuerzel]</option>";
}
else
{
echo "<option>$row[Kuerzel]</option>";
}
}
$db->Close();
Der Select-Befehl wird ausgeführt, aber die Auswahlliste auf dem Bildschirm enthält keine Daten. Es werden nur leere Einträge in Anzahl der Datensätze angezeigt.
Ändere ich $row[Kuerzel] in $row[KUERZEL] so funktioniert es. Das würde aber bedeuten, dass ich sämtlichen Code auf diese Großschreibung ändern muss, was ich nicht möchte, da dieser Code bereits mit einer MySQL und MS-SQL Datenbank wunderbar arbeitet.
Daher habe ich mir gedacht, dass ich die Schreibweise in der Oracle-Tabelle ändere, was diese auch zuläßt.
Ändere ich nur das Feld KUERZEL in Kuerzel, so funktioniert es ebenfalls wie gewünscht.
Ändere ich aber auch die zweite Spalte LAND in Land, so bricht die Execute-Anweisung mit 'Fatal error: Call to a member function FetchRow() on a non-object' ab.
Hintergrund ist wohl, dass der an die Datenbank gesendete Befehl von ADOdb (oder Oracle) in Großbuchstaben umgewandelt wird, und Oracle dadurch die nun kleingeschriebenen Fednamen nicht findet. Die direkte SQL-Eingabe in der Datenbank verhält sich genauso, d.h. auch hier wird ein kleingeschriebener Feldname nicht erkannt.
Weiß jemand Rat, wie ich der Oracle-DB sagen kann, dass diese auf Groß- und Kleinschreibung achten soll?
Vielleicht kann man hierzu ja auch was in der ADOdb einstellen?
Ich weiß. dies ist kein Oracle-Forum, aber vielleicht ist ja schon jemand über dieses Problem gestolpert und hat eine Lösung hierfür.
Gruß
LaMi