–关于 loop 的游标使用:
declare
cursor c_emp is
select empno,ename from emp;
v_empno emp.empno%type;
v_ename emp.ename%type;
begin
–先打开游标
open c_emp;
–
loop
fetch c_emp into v_empno,v_ename;
exit when c_emp%notfound; –最后一次取到值就输出,没有就跳出循环
dbms_output.put_line(v_empno||’===’||v_ename);
end loop;
–最后关闭游标
close c_emp;
end;
–关于 while 的游标使用:
declare
cursor c_emp is
select empno,ename from emp;
v_empno emp.empno%type;
v_ename emp.ename%type;
begin
–先打开游标
open c_emp;
–提取第一行信息给变量
fetch c_emp into v_empno,v_ename;
while c_emp%found loop
dbms_output.put_line(v_empno||’===’||v_ename);
–提取下一行信息给变量
fetch c_emp into v_empno,v_ename;
end loop;
–最后关闭游标
close c_emp;
end;
–关于 for 的游标使用:不需要打开和关闭游标
declare
cursor c_emp is
select empno,ename from emp; –不能有重复的列名,要起别名,和视图一样
v_emp emp%rowtype;
begin
for v_emp in c_emp loop
dbms_output.put_line(v_emp.empno||’===’||v_emp.ename);–变量名.列名
end loop;
end;