在oracle中使用ref cursor返回结果

时间:2016-10-26 16:37:05

标签: oracle

创建程序后,我该怎么称呼它。当我尝试执行程序时,我应该在P2参数中放入什么值。或者我可以通过引用光标以常规方式查看结果集吗?或者我还有其他一些安排。非常感谢帮助

create or replace procedure ref_test  
(  
 p1 in table1.col1%type  
,p2 out sys_refcursor  
)  
as  
begin  
open p2 for  
select * from table1  
where col1 = p1;  
end;  
/

1 个答案:

答案 0 :(得分:0)

您可以这样称呼它:

declare
    vCur sys_REFCURSOR;
    vVar table1%ROWTYPE;
begin
    ref_test(1, vCur);
    loop
        fetch vCur into vVar;
        exit when vCur%NOTFOUND;
        dbms_output.put_line(vVar.col1 || ' - ' || vVar.col2);
    end loop;
end;

但我建议明确列出字段,而不是使用*