Oracle中的游标

来源:互联网 发布:武汉黄陂公安局网络 编辑:程序博客网 时间:2024/06/18 11:02

Cursor

%FOUND最近一次读取是否成功

%NOTFOUND

%ISOPEN游标打开时返回true

%ROWCOUNT返回已从游标读取的记录数

 

输出年龄大于等于18的用户的id跟name

declare

v_id t.id%type;

v_name t.name%type;

cursor c_user is

select id,name from t where age>=18;

begin

open c_user

loop

fetch c_user into v_id,v_name;

exit when c_user%notfound;

end loop;

close c_user;

end;

在游标定位下,修改或删除操作for update 进行锁定表中的对应行中的列

declare

v_id t.id%type;

v_name t.name%type;

cursor c_user is

select id,name from t where age>=18 for update [of name][nowait]

begin

   for c in c_user loop

      if c.id<20 then update t set name='人事部' where current of c_user;

      end if;

   end loop;

commit;

end;