游标
游标分为三种:隐式游标,显式游标,REF游标
隐式游标:在pl/sql程序中执行dmlSQL时自动创建隐式游标,增删改操作;
sql%found 影响了一行或者多行时为true(既数据发生了改变)
begin
update caozyxx set mim = '';
if sql%found then
dbms_output.put_line('发生修改');
else
null;
end if;
end;
sql%notfound 没有影响任何行为时为true(既数据没有发生改变或者没有数据)
sql%rowcound 影响的行数(返回number)
sql%isopen 游标是否打开(始终为false)
这些隐式游标属性常用于判断
显示游标:用于处理返回多行的查询
REF游标:处理运行时才能确认的动态SQL查询的结果
游标是一个指向上下文区的句柄或指针,可以用来控制上下文区和处理语句时上下文区发生的事情
实例:
使用pl/sql块,输入部门号,显示该部门所有的员工姓名,和他的工资。
declare
--定义游标类型
type sp_cursor is ref cursor;
--定义一个游标变量;
aa sp_cursor;
--定义变量
v_name caozyxx.caozyxm%type;
v_mim caozyxx.mim%type;
begin
--执行
--把aa和一个select结合;
--打开游标
open aa for select caozyxm,mim from caozyxx where qiy = 1;
--循环取出
loop
fetch aa into v_name,v_mim;
--判断aa是否为空
exit when aa%notfound;
dbms_output.put_line('姓名:'||v_name||'薪水:'||v_mim);
end loop;
end;