访问sp时可调用语句错误

时间:2014-07-16 05:31:07

标签: java oracle jdbc

当我尝试从我的java类调用存储过程时,我收到错误ordinal binding and named binding cannot be combined

我的存储过程将返回一些记录列表

以下是我的java代码:

CallableStatement callableStatement = null;
dbConnection = getDBConnection();
callableStatement = (CallableStatement) dbConnection.prepareCall("{call UPDATE_RQST_STATUS_SP(?)}");
callableStatement.registerOutParameter(1, OracleTypes.CURSOR);
callableStatement.execute();

2 个答案:

答案 0 :(得分:1)

您的代码似乎很好。

但我担心早期的oracle驱动程序中存在一些错误。

您应该升级到10.1.0.3或更高版本的JDBC驱动程序。

在这里:Oracle Database 11g Release 2 (11.2.0.4) JDBC Drivers

答案 1 :(得分:0)

尝试按如下方式调用存储过程,并确保使用Oracle的最新JDBC驱动程序。

callablestatement = 
             connection.prepareCall("begin ? :=UPDATE_RQST_STATUS_SP(?); end;");
callablestatement.registerOutParameter(1, OracleTypes.CURSOR);
callablestatement.execute();
resultSet = ((OracleCallableStatement)callablestatement).getCursor(1);

Oracle Documentation关于从Java调用PLSQL过程或函数