oracle如何关闭游标?

 我来答
司空熙0I2
推荐于2019-08-24 · TA获得超过626个赞
知道答主
回答量:10
采纳率:0%
帮助的人:1771
展开全部

第一,如果游标以open打开的,则使用close关闭:


declare;

cursor mycursor is;

select * from emp for update;

myrecord emp%rowtype;

begin

open mycursor;

loop

fetch mycursor into myrecord;

exit when mycursor%notfound;

if (myrecord.sal=2000) then

update emp

set sal=2018

where current of mycursor;

end if;

end loop;

close mycursor;

commit;

end;

第二,使用for 循环的,则循环结束游标自动关闭:

declare

cursor mycursor is

select * from emp;

begin

for i in mycursor

loop

dbms_output.put_line(i.job);

end loop;

end;

oracle游标是数据库中一个命名的工作区,当游标被声明后,他就与一个固定的SQL想关联,在编译时刻是已知的,是静态的.它永远指向一个相同的查询工作区。

游标变量可以在运行时刻与不同的SQL语句关联,在运行时可以取不同的SQL语句.它可以引用不同的工作区。

oracle游标和游标变量是不能相互代替的。如何定义游标类型:

TYPE ref_type_name IS REF CURSOR [RETURN return_type];

声明游标变量:

cursor_name ref_type_name;

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式