oracle 返回 table,oracle 存储过程返回 结果集 table形式的案例

--sys_refcursor 和 cursor 优缺点比较

优点比较

优点一:

sys_refcursor,可以在存储过程中作为参数返回一个table格式的结构集(我把他认为是table类型,容易理解,其实是一个游标集), cursor 只能用在存储过程,函数,包等的实现体中,不能做参数使用。

优点二:

sys_refcursor 这东西可以使用在包中做参数,进行数据库面向对象开放。哈哈。我喜欢。cursor就不能。

create or replace procedure p_test(p_cur out sys_refcursor)

as

begin

open p_cur for select * from emp;

end p_test;

declare

p_cur sys_refcursor;

i emp%rowtype;

begin

p_test(p_cur);

loop fetch p_cur

into i;

exit when p_cur%notfound;

DBMS_OUTPUT.PUT_LINE('---'||i.ename||'---'||i.empno);

end loop;

close p_cur;

end;

补充:Oracle存储过程返回select * from table结果

1.首先建立一个包

create or replace package LogOperation is

type listLog is ref curs

你可能感兴趣的:(oracle,返回,table)