首页 > 开发 > 综合 > 正文

关于游标的一点发现

2024-07-21 02:40:15
字体:
来源:转载
供稿:网友

昨天在写存储过程的时候发现了一个以前忽视了的地方,不知道对大家有没有用。
创建显性游标:
create or replace PRocedure test 
is 
cursor test1 is select name from devp;
test2 devp.name%type;
begin
open test1;
loop
fetch test1 into test2;
dbms_output.put_line(test2); --注重,此处用的是test2变量
exit when test1%notfound;
end loop; 
close test1;
end;
/

create or replace procedure test 
is 
cursor test1 is select name from devp;
test2 test1%rowtype;
begin
open test1;
loop
fetch test1 into test2;
dbms_output.put_line(test2.name); --注重,此处用的是test2.name
exit when test1%notfound;
end loop;
close test1;
end;
/


下面用隐性游标试一下:
create or replace procedure test 
is 
cursor test1 is select name from devp;
test2 devp.name%type;
begin
for test2 in test1 loop
dbms_output.put_line(test2.name); --注重,此处用的是test2.name
end loop;
end;
/

create or replace procedure test 
is 
cursor test1 is select name from devp;
test2 test1%rowtype;
begin
for test2 in test1 loop
dbms_output.put_line(test2.name); --注重,此处用的是test2.name
end loop;
end;
/

由于使用的游标的不同,我们最终在使用变量的时候还是有一些小区别的。希望大家以后在调代码的时候少走弯路。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表