sql >> Databáze >  >> RDS >> Oracle

Jak získat vygenerované klíče pomocí executeBatch bez výjimky ArrayIndexOutOfBoundsException?

Zdá se, že se jedná o chybu v Oracle na Windows, ovladači JAR ojdbc6.jar nebo (se znalostí Oracle) obou.

S kódem, který jste předložili, není žádný významný problém. Mělo by to fungovat, i když když jsem to spustil, počet řádků vložených pokaždé byl vrácen jako -2 (=Statement.SUCCESS_NO_INFO ), takže možná bude lepší tato čísla ignorovat.

Váš kód mi běží dobře s Oracle 11g XE 11.2.0.2.0 na Linuxu se čtyřmi verzemi Oracle JDBC ovladače JAR. Pokud jej však spustím ve Windows 10 se stejnou verzí Oracle XE as ojdbc6.jar, selže se stejnou výjimkou ArrayIndexOutOfBoundsException, kterou získáváte. Problém zmizí, pokud místo ojdbc6.jar použiji ojdbc7.jar.

Proto bych doporučil nahradit ojdbc6.jar za ojdbc7.jar, který si můžete stáhnout z zde .




  1. Jak používat výpis MySQL ze vzdáleného počítače

  2. MySQL získat čas vložení starého záznamu?

  3. MySQL select different nefunguje

  4. Příklad ze skutečného života, kdy použít OUTER / CROSS APPLY v SQL