declare
cursor emp_cur is select *from emp;
v_emp emp%rowType;
begin
open emp_cur;
while emp_cur%notfound loop
fetch emp_cur into v_emp;
dbms_output.put_line(v_emp.ename); end loop;
close emp_cur;
end;但是用loop循环可以获得输出数据。
cursor emp_cur is select *from emp;
v_emp emp%rowType;
begin
open emp_cur;
while emp_cur%notfound loop
fetch emp_cur into v_emp;
dbms_output.put_line(v_emp.ename); end loop;
close emp_cur;
end;但是用loop循环可以获得输出数据。
declare
cursor emp_cur is select * from emp;
v_emp emp%rowType;
begin
open emp_cur;
while emp_cur%notfound --while肯定要跟loop一起用的 且是控制循环体的
loop
fetch emp_cur into v_emp;
dbms_output.put_line(v_emp.ename); end loop;
close emp_cur;
end;
还没fetch, 就用游标的emp_cur%notfound!必须先fetch,再用游标的notfound来判断
1. 使用loop, exit (不用while)
如:
loop
fetch emp_cur into v_emp;
exit when emp_cur%notfound;
dbms_output.put_line(v_emp.ename);
end loop;
2. 使用while, 这时先要fetch
fetch emp_cur into v_emp;
while (emp_cur%found)
loop
dbms_output.put_line(v_emp.ename);
fetch emp_cur into v_emp;
end loop;