SQL> create table ttt(id int , name varchar2(10));
表已创建。
SQL> insert into ttt values(1,'a');
已创建 1 行。
SQL> insert into ttt values(2,'b');
已创建 1 行。
SQL> commit;
提交完成。
SQL>create or replace procedure getmult(result out sys_refcursor)
2 is
3 begin
4 open result for select * from ttt;
5* end;
SQL> /
过程已创建。
SQL> variable a refcursor
SQL> exec getmult(:a);
PL/SQL 过程已成功完成。
SQL> print :a;
ID NAME
---------- ----------
1 a
2 b
--定义sys_refcursor类型的变量也可以直接返回结果集
sys_refcursor就是系统事先定义好的一个ref cursor类型的数据类型
SQL> select * into :a from ttt;
ID NAME
---------- ----------
1 a
2 b
--利用cursor express可以直接返回结果集
SQL> select cursor(select * from ttt) from dual;
CURSOR(SELECT*FROMTT
--------------------
CURSOR STATEMENT : 1
CURSOR STATEMENT : 1
ID NAME
---------- ----------
1 a
2 b
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-996415/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/19602/viewspace-996415/