游标是一个指针,指向的是Oracle的缓冲区或内存区。它包括显式游标以及隐式游标。用户定义的游标就称为显式游标,需要手动声明、打开、关闭,主要针对查询操作。Oracle自动管理的游标是隐式游标,不用声明、打开或关闭,主要针对增删改操作。
declare
cursor cur_demo is select * from dept; --声明一个游标
v_dept dept%rowtype; --声明一个dept的类型变量
begin
open cur_demo; --打开游标
loop --循环开始
fetch cur_demo into v_dept;
dbms_output.put_line(v_dept.deptno||‘,‘||v_dept.dname||‘,‘||v_dept.loc);
exit when cur_demo%notfound;
end loop; --循环结束
close cur_demo;--关闭游标
end;
declare
cursor cur_demo1 is select * from dept;
begin
for v_dept in cur_demo1
loop
dbms_output.put_line(v_dept.deptno||‘,‘||v_dept.dname||‘,‘||v_dept.loc);
end loop;
end;
begin
update salgrade set hisal=20000 where grade=7;
if SQL%notfound then
insert into salgrade values (7,10000,20000);
dbms_output.put_line(SQL%rowcount);
else
dbms_output.put_line(SQL%rowcount);
end if;
end;
以上就是oracle当中游标的用法。
原文:https://www.cnblogs.com/alichengxuyuan/p/12576985.html