Oracle
 sql >> база данни >  >> RDS >> Oracle

JDBC - Oracle ArrayIndexOutOfBoundsException

В Oracle Metalink (сайт за поддръжка на Oracle - бележка ID 736273.1) открих, че това е грешка в JDBC адаптера (версия 10.2.0.0.0 до 11.1.0.7.0), че когато извикате readyStatement с повече от 7 позиционни параметъра, тогава JDBC ще хвърля тази грешка.

Ако имате достъп до Oracle Metalink, тогава една от опциите е да отидете там и да изтеглите споменатата корекция.

Другото решение е заобиколно решение - използвайте именувани параметри вместо позиционни параметри:

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)

и след това използвайте

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

и т.н., за да зададете именувани променливи за свързване за тази заявка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвате функцията NVL() в Oracle

  2. NLS_LOWER() Функция в Oracle

  3. 4 начина за намиране на редове, които съдържат главни букви в Oracle

  4. извикване на съхранена процедура през dblink

  5. Как да изберете сравнението на две колони като една колона в Oracle