您的位置:首页 > 编程语言

代码段接收并遍历返回值为动态游标的方法

2016-06-02 19:14 459 查看
通过方法返回动态游标

plsql代码段接收游标并遍历游标

1.通过方法返回动态游标

create or replace function F_A return sys_refcursor is
my_cuusor sys_refcursor;
BEGIN
OPEN my_cuusor FOR SELECT '1' TBN,2 CNT FROM DUAL UNION SELECT '3' TBN,4 CNT  FROM DUAL;
return my_cuusor;
end;


2.plsql代码段接收游标并遍历游标

方法一 定义多个变量来遍历游标的多列

DECLARE
bCursor sys_refcursor;
cchar varchar2(20);
cint number(5);
begin
bCursor:= F_A();
--SELECT F_A() into bCursor FROM DUAL;这条SQL可以直接查看游标内容
--open bCursor;注意这个地方不能使用open,否则报错,原因是F_A方法中已经打开过了
--close bCursor;
loop
fetch bCursor into cchar,cint;
exit when bCursor%notfound;
dbms_output.put_line(cchar);
end loop;
close bCursor;
end;


方法二 使用record遍历游标

DECLARE
bCursor sys_refcursor;
cchar varchar2(20);
cint number(5);
type mt is record(
dchar varchar2(20),
dint number(5)
);
vmt mt;
begin
bCursor:= F_A();
--SELECT F_A() into bCursor FROM DUAL;
--open bCursor;
--close bCursor;
loop
fetch bCursor into vmt;
exit when bCursor%notfound;
dbms_output.put_line(vmt.dchar);
end loop;
close bCursor;
end;


record与table的区别

ORACLE中RECORD、VARRAY、TABLE的使用详解(转)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息