Oracle中的 游标
程序员文章站
2024-02-10 13:25:58
...
游标
--游标,类似于java中的list,可以存放多个对象和多行记录
declare
cursor c1 is select * from account;
accountrow account%rowtype;
begin
open c1;
loop
fetch c1 into accountrow;--从c1游标中循环拿出记录放到对应的类型的变量accountrow中
exit when c1%notfound;--当c1中没有数据时退出
dbms_output.put_line(accountrow.name);
end loop;
close c1;
end;
游标案例
--实现id为2的加100,id为3的减100
declare
cursor c2(uid account.id%type) is --有变量的游标,设置变量名和变量类型
select name from account where id = uid;--在游标中定义的变量可以作为条件直接使用
uname account.name%type;
begin
open c2(2);--打开游标,当打开游标时传入右边所必须的变量
loop
fetch c2 into uname;
exit when c2%notfound;
update account set money = money+100 where name = uname;
commit;
end loop;
close c2;
end;