Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie erhalte ich generierte Schlüssel von executeBatch ohne ArrayIndexOutOfBoundsException?

Dies scheint ein Fehler in Oracle unter Windows, der Treiber-JAR ojdbc6.jar oder (in Kenntnis von Oracle) beidem zu sein.

Es gibt kein wesentliches Problem mit dem von Ihnen präsentierten Code. Es sollte funktionieren, obwohl, als ich es ausführte, die Anzahl der Zeilen, die jedes Mal eingefügt wurden, als -2 zurückgegeben wurde (=Statement.SUCCESS_NO_INFO ), daher ist es möglicherweise besser, diese Nummern zu ignorieren.

Ihr Code läuft gut für mich mit Oracle 11g XE 11.2.0.2.0 unter Linux mit vier Versionen des Oracle JDBC-Treibers JAR. Wenn ich es jedoch unter Windows 10 mit derselben Version von Oracle XE und mit ojdbc6.jar ausführe, schlägt es mit derselben ArrayIndexOutOfBoundsException fehl, die Sie erhalten. Das Problem verschwindet, wenn ich ojdbc7.jar anstelle von ojdbc6.jar verwende.

Daher würde ich empfehlen, ojdbc6.jar durch ojdbc7.jar zu ersetzen, das Sie von hier .