我正在使用 PL/SQL Developer,我已经编写了一个运行报告的过程,我需要该过程来输出结果集。
该过程接受输入参数并需要输出结果集。
我不能使用视图,因为该过程调用了几个 API,它们接受我传递给该过程的参数。
我从大量搜索中了解到可以使用 ref_cursor 但我无法让 ti 工作。
该过程的简化版本是:
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
但两者都不起作用。请有人建议我无能为力。
谢谢罗伯