您的位置:首页 > 数据库

plsql-游标2

2013-07-31 11:50 99 查看
定义游标变量,v1 是固定返回格式的游标,c1 是原来的在声明中定义的游标。

DECLARE
TYPE emp_cur_typ IS REF CURSOR RETURN emp%ROWTYPE;
v1 emp_cur_typ;

v2 emp%rowtype;

cursor c1 is select * from emp;

begin
open v1 for select * from emp order by sal desc;
fetch v1 into v2;

dbms_output.put_line(v2.ename||' '||v2.sal);

fetch v1 into v2;

dbms_output.put_line(v2.ename||' '||v2.sal);
open v1 for select * from emp order by sal;
fetch v1 into v2;

dbms_output.put_line(v2.ename||' '||v2.sal);

close v1;

open c1;

fetch c1 into v2;

dbms_output.put_line(v2.ename||' '||v2.sal);

end;

/
定义一个非固定格式的游标变量。V1 可以匹配任何的查询。
DECLARE
TYPE typ1 IS REF CURSOR;
v1 typ1;

v2 emp%rowtype;

v3 dept%rowtype;

begin

--以 emp 表来打开 v1 游标

open v1 for select * from emp order by sal desc;

fetch v1 into v2;

dbms_output.put_line(v2.ename||' '||v2.sal);

fetch v1 into v2;

dbms_output.put_line(v2.ename||' '||v2.sal);

close v1;

--重新以新的定义打开游标,访问 dept 表

open v1 for select * from dept;

fetch v1 into v3;

dbms_output.put_line(v3.dname||' '||v3.loc);

close v1;

end;

/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SQL