Hallo,
ich möchte eine Oracle 10g ExpressEdition-Datenbank mittels ADOdb abfragen.
ADOdb (Active Data Objects DataBase) ist eine Sammlung von Datenbank-Abstraktions-Funktionen. (http://phplens.com/phpeverywhere/adodb_german)
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:
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 hoffe, es hat jemand eine Lösung hierfür oder einen Denkansatz.
Gruß
LaMi
ich möchte eine Oracle 10g ExpressEdition-Datenbank mittels ADOdb abfragen.
ADOdb (Active Data Objects DataBase) ist eine Sammlung von Datenbank-Abstraktions-Funktionen. (http://phplens.com/phpeverywhere/adodb_german)
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:
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();
Ä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 hoffe, es hat jemand eine Lösung hierfür oder einen Denkansatz.
Gruß
LaMi
Comment