Oracle
 sql >> Database >  >> RDS >> Oracle

Come ottenere le chiavi generate da executeBatch senza ArrayIndexOutOfBoundsException?

Questo sembra essere un bug in Oracle su Windows, il driver JAR ojdbc6.jar o (conoscendo Oracle) entrambi.

Non ci sono problemi significativi con il codice che hai presentato. Dovrebbe funzionare, anche se quando l'ho eseguito il numero di righe inserite ogni volta è stato restituito come -2 (=Statement.SUCCESS_NO_INFO ), quindi è meglio ignorare questi numeri.

Il tuo codice funziona bene per me con Oracle 11g XE 11.2.0.2.0 su Linux con quattro versioni del driver JDBC Oracle JAR. Tuttavia, se lo eseguo su Windows 10 con la stessa versione di Oracle XE e con ojdbc6.jar, fallisce con la stessa ArrayIndexOutOfBoundsException che stai ricevendo. Il problema scompare se utilizzo ojdbc7.jar invece di ojdbc6.jar.

Pertanto, consiglierei di sostituire ojdbc6.jar con ojdbc7.jar, che puoi scaricare da qui .