Roland Reimann
2013-07-22 11:54:06 UTC
Hallo NG,
wir haben hier verschiedene Programme die auf eine Oracle Datenbank
zugreifen. Bisher waren auf den Client-Rechnern die
Oracle-9i-Client-Software installiert. Unsere SQL-Abfragen liefen
damit problemlos.
Da ein Update der Oracle Datenbank geplant ist erhalten nun neue PC's
den Oracle 11i-Client.
Jetzt kommt es bei einigen Abfragen zu einer Exception mit der
Fehlermeldung: "Fehler bei einem aus mehreren Schritten bestehenden
Vorgang. Prüfen Sie die Statuswerte".
Eine Recherche im Internetzeigte lies das Problem erkennen. Die
Fehlermeldung ist irreführend. Wenn in der Datenbank Real-Zahlen oder
Datumswerte abgefragt werden, welche extreme Werte besitzen, dann
kommt es zu der besagten Fehlermeldung (bei Realzahlen manchmal auch:
"Fehlerhaftes Argument").
Die Werte werden geholt mit FieldByName().AsString / AsDateTime /
AsFloat.
Extreme Werte meint z.B. bei Real-Zahlen -x.xxE-15 und bei
Datumswerten 01.01.99.
Als Provider verwenden wir: OraOLEDB.Oracle.
Hat jemand ähnliche Erfahrungen gemacht und eventuell eine gute Idee
für eine saubere Lösung?
Gruß aus Aßlar
Roland
wir haben hier verschiedene Programme die auf eine Oracle Datenbank
zugreifen. Bisher waren auf den Client-Rechnern die
Oracle-9i-Client-Software installiert. Unsere SQL-Abfragen liefen
damit problemlos.
Da ein Update der Oracle Datenbank geplant ist erhalten nun neue PC's
den Oracle 11i-Client.
Jetzt kommt es bei einigen Abfragen zu einer Exception mit der
Fehlermeldung: "Fehler bei einem aus mehreren Schritten bestehenden
Vorgang. Prüfen Sie die Statuswerte".
Eine Recherche im Internetzeigte lies das Problem erkennen. Die
Fehlermeldung ist irreführend. Wenn in der Datenbank Real-Zahlen oder
Datumswerte abgefragt werden, welche extreme Werte besitzen, dann
kommt es zu der besagten Fehlermeldung (bei Realzahlen manchmal auch:
"Fehlerhaftes Argument").
Die Werte werden geholt mit FieldByName().AsString / AsDateTime /
AsFloat.
Extreme Werte meint z.B. bei Real-Zahlen -x.xxE-15 und bei
Datumswerten 01.01.99.
Als Provider verwenden wir: OraOLEDB.Oracle.
Hat jemand ähnliche Erfahrungen gemacht und eventuell eine gute Idee
für eine saubere Lösung?
Gruß aus Aßlar
Roland