欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

plsq程序设计--游标

程序员文章站 2022-06-05 09:01:15
...
[color=red][b]游标属性:[/b][/color]
[table]
|notfound 未找到数据返回true|
|found 找到数据返回true|
|rowcount 游标当前位置|
[/table]

declare
--声明游标,这时数据库并没有真正去select数据
cursor c is
select * from emp;
v_emp c%rowtype;
begin
--打开游标,此时执行select
open c;
--执行fetch后,游标自动向下移动一条数据。没有循环,所以只取出第一条数据
fetch c into v_emp;
dbms_output.put_line(v_emp.ename);
close c;
end;

[color=red]
[b]循环取得游标内所有数据[/b][/color]

declare
cursor c is
select * from emp;
v_emp c%rowtype;
begin
open c;
loop
fetch c into v_emp;
exit when (c%notfound);
dbms_output.put_line(c%rowcount);
dbms_output.put_line(v_emp.ename);

end loop;
close c;
end;


declare
cursor c is
select * from emp;
v_emp c%rowtype;
begin
open c;
fetch c into v_emp;
while (c%found) loop
dbms_output.put_line(c%rowcount);
dbms_output.put_line(v_emp.ename);
fetch c into v_emp;
end loop;
close c;
end;


declare
cursor c is
select * from emp;
begin
for v_emp in c loop
dbms_output.put_line(c%rowcount);
dbms_output.put_line(v_emp.ename);
end loop;
end;
相关标签: C C++ C# SQL