Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment obtenir les clés générées par executeBatch sans ArrayIndexOutOfBoundsException ?

Cela semble être un bogue dans Oracle sous Windows, le pilote JAR ojdbc6.jar, ou (connaissant Oracle) les deux.

Il n'y a pas de problème significatif avec le code que vous avez présenté. Cela devrait fonctionner, bien que lorsque je l'ai exécuté, le nombre de lignes insérées à chaque fois a été renvoyé sous la forme -2 (=Statement.SUCCESS_NO_INFO ), il vaut donc mieux ignorer ces chiffres.

Votre code fonctionne bien pour moi avec Oracle 11g XE 11.2.0.2.0 sous Linux avec quatre versions du pilote Oracle JDBC JAR. Cependant, si je l'exécute sur Windows 10 avec la même version d'Oracle XE et avec ojdbc6.jar, il échoue avec la même ArrayIndexOutOfBoundsException que vous obtenez. Le problème disparaît si j'utilise ojdbc7.jar au lieu de ojdbc6.jar.

Par conséquent, je recommanderais de remplacer ojdbc6.jar par ojdbc7.jar, que vous pouvez télécharger depuis ici .