Oracle
 sql >> Baza danych >  >> RDS >> Oracle

JDBC — Oracle ArrayIndexOutOfBoundsException

W Oracle Metalink (witryna wsparcia Oracle - Note ID 736273.1) odkryłem, że jest to błąd w adapterze JDBC (wersja 10.2.0.0.0 do 11.1.0.7.0), że gdy wywołasz PrepareStatement z więcej niż 7 parametrami pozycyjnymi, JDBC wyrzuć ten błąd.

Jeśli masz dostęp do Oracle Metalink, jedną z opcji jest udanie się tam i pobranie wspomnianej poprawki.

Drugim rozwiązaniem jest obejście — użyj nazwanych parametrów zamiast parametrów pozycyjnych:

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 następnie użyj

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

itp., aby ustawić nazwane zmienne wiązania dla tego zapytania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle PL/SQL:Eksportuj dane z tabeli do CSV

  2. Jak usunąć „Wybrano X wierszy” w SQLcl i SQL*Plus (Oracle)

  3. PL/SQL wydrukuj ref kursor zwrócony przez procedurę składowaną

  4. Używanie parametrów z połączeniem Oracle ODBC

  5. Funkcja uśpienia w ORACLE