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

JDBC - Oracle ArrayIndexOutOfBoundsException

V Oracle Metalink (stránka podpory Oracle - ID poznámky 736273.1) jsem zjistil, že se jedná o chybu v adaptéru JDBC (verze 10.2.0.0.0 až 11.1.0.7.0), že když zavoláte readyStatement s více než 7 pozičními parametry, JDBC se vyvolat tuto chybu.

Pokud máte přístup k Oracle Metalink, pak jednou z možností je jít tam a stáhnout si zmíněný patch.

Dalším řešením je náhradní řešení – místo pozičních parametrů použijte pojmenované parametry:

INSERT INTO rule_definitions(RULE_DEFINITION_SYS,rule_definition_type,
rule_name,rule_text,rule_comment,rule_message,rule_condition,rule_active,
rule_type,current_value,last_modified_by,last_modified_dttm,
rule_category_sys,recheck_unit,recheck_period,trackable)
VALUES(RULE_DEFINITIONS_SEQ.NEXTVAL,:rule_definition_type,
:rule_name,:rule_text,:rule_comment,:rule_message,:rule_condition,:rule_active,
:rule_type,:current_value,:last_modified_by,:last_modified_dttm,
:rule_category_sys,:recheck_unit,:recheck_period,:trackable)

a poté použijte

preparedStatement.setStringAtName("rule_definition_type", ...)

atd. pro nastavení pojmenovaných vazebných proměnných pro tento dotaz.



  1. MySQL DROP UNIQUE CONSTRAINT

  2. Jak mohu prohledávat všechny sloupce v tabulce?

  3. Jaký typ/délku sloupce bych měl použít pro uložení hesla hash Bcrypt v databázi?

  4. Použití FLASHBACK v Oracle