我正在使用PL/SQL Developer,编写了一个运行报表的存储过程,并需要使其输出结果集。
该存储过程接受输入参数并需输出结果集。
由于存储过程调用了多个API,并接受我传入的参数,因此无法使用视图。
我从很多搜索结果中了解到,可以使用ref_cursor实现,但我无法成功。
该存储过程的简化版本如下:
CREATE OR REPLACE PROCEDURE IFSINFO.SHORTAGE_SHEET (vSite IN VARCHAR2,
vBuyer IN VARCHAR2,
vSupplier IN VARCHAR2,
vCursor OUT SYS_REFCURSOR)
AS
BEGIN
OPEN vCursor FOR
SELECT blah blah blah blah blah blah;
END;
我尝试使用以下方法执行过程并显示结果集:
BEGIN
vsite := 'S03';
vbuyer := 'AW';
vsupplier := '%';
vcursor refcursor;
IFSINFO.SHORTAGE_SHEET(vsite => :vsite,
vbuyer => :vbuyer,
vsupplier => :vsupplier,
vcursor => :vcursor);
print vcursor;
END;
同时还有:
variable rc refcursor;
exec IFSINFO.SHORTAGE_SHEET('S03','AW','TQ1',:rc2);
print rc2
但是两者都不起作用。请有人给予建议,我已经束手无策了。
谢谢。 罗布