游标的使用
今天和大家一起复习一下我前个月学习的Oracl游标的使用总结:
sql%notfound:判断是否没有找到所更新的数据,返回布尔值类型。
sql%found:判断是否找到所更新的数据,返回布尔值类型。
sql%rowcount:返回所更新的行的数目。
sql%isopen:判断游标是否已经打开了。
这是几个Oracle数据库中内置的一个函数。
一般使用创建游标的步骤为:
1.声明变量,包括数据变量和记录变量。
2.声明一个游标。
3.打开游标。
4.从游标中获得数据,可以直接赋值和可以循环放到一个记录变量里面。
5.对游标进行 关闭操作。
declare
dept_no dept.deptno%type;--声明一个变量类型
dept_records dept%rowtype;--声明一个记录类型
cursor mycur is select deptno,dname,loc from dept;--声明一个游标
begin
open mycur;--打开游标
loop
fetch mycur into dept_records;--取得游标里面的数据放入在记录类型当中
dept_no:=dept_records.deptno;--给部门编号赋值
if(dept_no=10) then
update dept set dname='aaa' where deptno=dept_no;
elsif(dept_no=20) then
update dept set dname='bbb' where deptno=dept_no;
elsif(dept_no=30) then
update dept set dname='ccc' where deptno=dept_no;
else
null;
end if;
exit when mycur%notfound;--如果没有找到游标则退出
end loop;
commit;--提交命令
exception--异常捕捉
when others then
rollback;
close mycur;
end;