/*
8、游标
显示游标:指的是游标使用之前必须得先声明定义,一般是对查询语句的结果事进行定义游标,然后通过打开游标循环获取结果集内的记录,或者可以根据业务需求跳出循环结束游标的获取。循环完成后,可以通过关闭游标,结果集就不能再获取了。全部操作完全由开发者自己编写完成,自己控制。
隐式游标:指的是PL/SQL自己管理的游标,开发者不能自己控制操作,只能获得它的属性信息。
*/
/*
显示游标 使用步骤
1、声明游标
declare cursor cursor_name(游标名) is select_statement(查询语句);
2、打开游标
open cursor_name;
3、读取游标中数据
fetch cursor_name into record变量;
4、关闭游标
close cursor_name;
*/
--8.1.1 创建游标给员工的薪水加1000
declare
cursor emp_addsal is select * from emp;--1 声明游标 emp_addsal
emprow emp%rowtype;--定义emprow接收每行的数据
begin
open emp_addsal;--2 打开游标
loop-- 循环读取游标中的数据
fetch emp_addsal into emprow;--3 读取游标中数据 到 emprow
exit when emp_addsal%notfound;--如果数据读取结束退出循环
update emp set sal = (emprow.sal+1000) where empno = emprow.empno;--给对应员工工资加1000
end loop;
close emp_addsal;--关闭游标
commit;--提交数据
end;
/
select * from emp;--查询员工工资
/*
显式游标的属性
1、%NOTFOUND。表示游标获取数据的时候是否有数据提取出来,没有数据返回TRUE,有数据返回false。经常用来判断游标是否全部循环完毕,如案例1%NOTFOUND为true的时候,说明循环完毕,跳出LOOP循环。
2、%FOUND。正好和%NOTFOUND相反,当游标提取数据值时有值,返回TRUE,否则返回FALSE。
3、%ISOPEN。用来判断游标是否打开。
4、%ROWCOUNT。表示当前游标FETCH INTO获取了多少行的记录值,用来做计数用的。
*/
--8.1.2 查看显示游标的属性
declare
cursor emp_addsal is select * from emp;--1 声明游标 emp_addsal
emprow emp%rowtype;--定义emprow接收每行的数据
begin
open emp_addsal;--2 打开游标
loop-- 循环读取游标中的数据
fetch emp_addsal into emprow;--3 读取游标中数据 到 emprow
exit when e
PL/SQL编程(四) 游标、触发器
最新推荐文章于 2021-05-11 17:10:20 发布