pl/sql编程----游标

游标

游标分为三种:隐式游标,显式游标,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;

猜你喜欢

转载自blog.csdn.net/enbaoIT/article/details/89244344