日期:2014-05-17  浏览次数:20751 次

我在存储过程里面定义了一个游标,怎样执行存储过程后能把游标结果集像select语句一样显示出来?
我在存储过程里面定义了一个游标,怎样执行存储过程后能把游标结果集像select语句一样显示出来?

例如:

CREATE OR REPLACE PROCEDURE yyyy_tmpppp(p_rc in out PKG_RTN.RESULT_TYPE) as
--type RESULT_TYPE is ref cursor; 属于 包PKG_RTN
BEGIN
open p_rc for select * from zy_ls_zydjb;
END;


然后在plsql中执行:
exec  yyyy_tmpppp

能像执行 select * from zy_ls_zydjb一样显示出来

这个怎么实现???
------最佳解决方案--------------------
CREATE OR REPLACE PROCEDURE yyyy_tmpppp(p_rc in out PKG_RTN.RESULT_TYPE) as
--type RESULT_TYPE is ref cursor; 属于 包PKG_RTN
declare
output varchar2(200);
BEGIN
open p_rc for select * from zy_ls_zydjb;
/*这个地方你可以循环取值出来,用DBMS_OUTPUT.PUT_LINE(output)输出
loop 
output :=p_rc.字段;
DBMS_OUTPUT.PUT_LINE(output);
end loop 
*/
END;


------其他解决方案--------------------
楼上正解,直接循环取游标的值就可以了。或者你看看这个简单的文章
http://aniyo.iteye.com/blog/1539925