Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como obter chaves geradas por executeBatch sem ArrayIndexOutOfBoundsException?


Isso parece ser um bug no Oracle no Windows, o driver JAR ojdbc6.jar, ou (conhecendo Oracle) ambos.

Não há nenhum problema significativo com o código que você apresentou. Deve funcionar, embora quando eu o executei, o número de linhas inseridas a cada vez foi retornado como -2 (=Statement.SUCCESS_NO_INFO ), então talvez seja melhor ignorar esses números.

Seu código funciona bem para mim com o Oracle 11g XE 11.2.0.2.0 no Linux com quatro versões do JAR do driver Oracle JDBC. No entanto, se eu executá-lo no Windows 10 com a mesma versão do Oracle XE e com ojdbc6.jar, ele falha com o mesmo ArrayIndexOutOfBoundsException que você está recebendo. O problema desaparece se eu usar ojdbc7.jar em vez de ojdbc6.jar.

Portanto, eu recomendaria substituir ojdbc6.jar por ojdbc7.jar, que você pode baixar em aqui .