sql >> Databasteknik >  >> RDS >> Oracle

JDBC - Oracle ArrayIndexOutOfBoundsException

I Oracle Metalink (Oracles supportwebbplats - Notera ID 736273.1) fann jag att detta är en bugg i JDBC-adaptern (version 10.2.0.0.0 till 11.1.0.7.0) att när du anropar readyStatement med mer än 7 positionsparametrar kommer JDBC att kasta det här felet.

Om du har tillgång till Oracle Metalink så är ett alternativ att gå dit och ladda ner nämnda patch.

Den andra lösningen är en lösning - använd namngivna parametrar istället för positionsparametrar:

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)

och använd sedan

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

etc. för att ställa in namngivna bindningsvariabler för denna fråga.



  1. COS() Exempel i SQL Server

  2. Hur grupperar jag efter vecka i MySQL?

  3. Undvik detta vanliga fel när du kör lagrad procedur i MS Access

  4. Jämföra metoder för strängdelning/sammansättning