【发布时间】:2012-01-07 20:40:21
【问题描述】:
这里我在Oracle中有一个存储过程:
CREATE OR REPLACE PROCEDURE StP_COMPS
IS
CV_1 SYS_REFCURSOR;
BEGIN
OPEN CV_1 FOR SELECT * FROM COMPUTERS;
END;
当我执行 EXEC SP_COMPS 之类的过程时,我没有收到任何错误,SQL Developer 只显示“ananymous block completed”。然后我把程序改成一个
CREATE OR REPLACE PROCEDURE SP_COMPS
(cv_1 OUT SYS_REFCURSOR)
IS
BEGIN
OPEN CV_1 FOR SELECT * FROM COMPUTERS;
END;
当我执行时,我收到错误消息,指出参数类型的数量是错误的。我很好奇如果它只是一个输出参数,我可以将什么作为参数发送给过程。我想在过程中运行查询的结果集。我在这里做错了什么?
附:当我尝试通过右键单击该过程并选择“运行”来运行该过程时,我得到:
DECLARE
CV_2 sys_refcursor;
BEGIN
SP_COMPS(
CV_2 => CV_2
);
:CV_2 := CV_2; -- <--Can't understand this part
END;
【问题讨论】:
标签: oracle stored-procedures cursor arguments