如何在调用存储过程时传递游标值?

时间:2014-12-16 14:42:23

标签: oracle stored-procedures plsql

这是我第二次诊断PL / SQL程序。我需要测试存储过程中的代码,我试图在SQL Developer中调用它。我已经运行了错误详细信息报告,代码中没有明显的错误。

所以现在我试图通过测试窗口运行它,这样我就可以看出输出是否正确。但是我似乎无法获得3参数的正确参数。以下是该过程中的参数。

CREATE OR REPLACE PROCEDURE ADVANCE.WW_DEATHDATE_REPORT(begindate varchar2, enddatevarchar2, RC1 IN OUT du_refCUR_PKG.RC) AS

这是我试图用来调用该过程的代码。我需要做些什么才能让它正常运行?我不断收到错误消息,说我在参数中使用了错误的值。

BEGIN
ADVANCE.WW_DEATHDATE_REPORT('20100101','20150101',du_refcur_pkg);
END;

1 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点,一种方式如下,

DECLARE 
du_refcur_pkg SYS_REFCURSOR; 
BEGIN 
OPEN du_refcur_pkg FOR SELECT ... ; 

ADVANCE.WW_DEATHDATE_REPORT('20100101','20150101',du_refcur_pkg);
END; 

另一种方式是,

BEGIN 
ADVANCE.WW_DEATHDATE_REPORT( '20100101','20150101', CURSOR (SELECT ... ) ); 
END;