In Oracle Metalink (de ondersteuningssite van Oracle - Note ID 736273.1) ontdekte ik dat dit een bug is in de JDBC-adapter (versie 10.2.0.0.0 tot 11.1.0.7.0) dat wanneer u prepareStatement aanroept met meer dan 7 positionele parameters, JDBC gooi deze fout.
Als je toegang hebt tot Oracle Metalink, dan is een optie om daarheen te gaan en de genoemde patch te downloaden.
De andere oplossing is een tijdelijke oplossing - gebruik benoemde parameters in plaats van positionele parameters:
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)
en gebruik dan
preparedStatement.setStringAtName("rule_definition_type", ...)
enz. om benoemde bindvariabelen voor deze query in te stellen.