oracle游标的使用

 
游标(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;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值