los*_*tes 14 oracle jboss jdbc
我在尝试在oracle表中插入一行时遇到异常.我正在使用ojdbc5.jar for oracle 11这是我正在尝试的sql
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,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
Run Code Online (Sandbox Code Playgroud)
我得到以下例外.任何帮助将不胜感激.
java.ljava.lang.ArrayIndexOutOfBoundsException: 15
at oracle.jdbc.driver.OracleSql.computeBasicInfo(OracleSql.java:950)
at oracle.jdbc.driver.OracleSql.getSqlKind(OracleSql.java:623)
at oracle.jdbc.driver.OraclePreparedStatement.(OraclePreparedStatement.java:1212)
at oracle.jdbc.driver.T4CPreparedStatement.(T4CPreparedStatement.java:28)
at oracle.jdbc.driver.T4CDriverExtension.allocatePreparedStatement(T4CDriverExtension.java:68)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:3059)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:2961)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:5874)
at org.jboss.resource.adapter.jdbc.WrappedConnection.prepareStatement(WrappedConnection.java:232)
at com.gehcit.platform.cds.common.util.db.DBWrapper.executeInsertOracleReturnPK(DBWrapper.java:605)
Rai*_*kis 26
在Oracle Metalink(Oracle的支持站点 - 注释ID 736273.1)中,我发现这是JDBC适配器(版本10.2.0.0.0到11.1.0.7.0)中的一个错误,当您调用具有7个以上位置参数的preparedStatement时,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)
Run Code Online (Sandbox Code Playgroud)
然后使用
preparedStatement.setStringAtName("rule_definition_type", ...)
Run Code Online (Sandbox Code Playgroud)
等为此查询设置命名绑定变量.
| 归档时间: |
|
| 查看次数: |
22120 次 |
| 最近记录: |