游标(CURSOR)也叫光标,在关系数据库中经常使用,在PL/SQL程序中可以用CURSOR与SELECT一起对表或者视图中的数据进行查询并逐行读取。Oracle的游标分为显式游标和隐式游标。显式游标(Explicit Cursor):在PL/SQL程序中定义的,用于查询的游标称作显示式游标。隐式游标(Implicit Cursor):是指非PL/SQL程序中定义的,而且是在PL/SQL中使用update/delete语句时,oracle系统自动分配的游标。
一、显式游标1.使用步骤(1)定义(2)打开(3)使用(4)关闭
样例表结构如下:
SQL> desc t2;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
AGE NUMBER
1. 典型的游标使用方法
1 declare
2 cursor mycur is select id from t2;--定义游标
3 v_id number;
4 begin
5 open mycur;--打开游标
6 fetch mycur into v_id;--使用游标,注意在循环之前,一定要先fetch一把
7 while mycur%found loop
8 update t2 set id = id + 1 where mod(v_id,2) =0;
9 fetch mycur into v_id;
10 end loop;
11 close mycur;--关闭游标
12 commit;
13* end;
2.for 游标
SQL> declare
2 cursor mycur is select * from t2;
3 begin
4 for myt2 in mycur loop
5 dbms_output.put_line(myt2.id);
6 end loop;
7 end;
8 /
二、隐式游标
1 begin
2 update t2 set id = 0 where age = 27;
3 if SQL%NOTFOUND then
4 insert into t2 values(0,26);
5 else
6 dbms_output.put_line('已经发生更新了');
7 end if;
8 commit;
9* end;
oracle游标的使用
最新推荐文章于 2023-05-11 21:59:47 发布