从 Java 调用存储过程时出现以下错误:
“java.sql.SQLException:[Oracle][ODBC][Ora]ORA-06550:第 1 行,第 7 列:PLS-00306:调用 'GET_NEW_EVENTS' ORA-06550:第 1 行,第 1 列的参数数量或类型错误7: PL/SQL: 语句被忽略”
存储过程如下:
create or replace package body event_subscription as
procedure get_new_events( p_events in out SYS_REFCURSOR ) as
begin
open p_events for
select log_id from event_alert_log;
end get_new_events;
end event_subscription;
调用存储过程的Java代码如下:
sqlString = "BEGIN event_subscription.get_new_events(?); END;";
CallableStatement cs = connection.prepareCall(sqlString);
cs.registerOutParameter(1,OracleTypes.CURSOR);
cs.execute(); // This line is failing and throwing the SQLException
ResultSet rs = (ResultSet) cs.getObject(1);
Oracle 版本为:Oracle Database 10g Express Edition Release 10.2.0.1.0 - 产品 Java 版本为:1.6。
有人可以在这个问题上帮助我。我一直在尝试所有可能的解决方案来解决这个问题。