oracle中的嵌套游标

时间:2012-06-05 06:27:31

标签: oracle plsql cursor procedure

我在oracle

中获得了这个存储过程
create or replace
procedure mayor_sueldo
as
  cursor c_depto is select deptno from dept;
  c_deptno dept.deptno%type;
  c_empno number;
  c_ename emp.ename%type;
  c_job emp.job%type;
  c_sal emp.sal%type;
begin
  open c_depto;
  fetch c_depto into c_deptno;
  while ( c_depto%found )loop
    select empno, ename, job, sal into c_empno, c_ename, c_job, c_sal from emp where sal = (select max(sal) from emp where(deptno = c_deptno) );
    dbms_output.put_line( c_empno||'-'||c_ename||'-'||c_job||' '||c_sal );
    fetch c_depto into c_deptno;
  end loop;
close c_depto;
end;

问题是在while块内的查询内部,如果查询返回一个并且只有一行没有问题但是当查询返回多行时我认为我可以使用另一个游标但idk如何。 请帮帮我

1 个答案:

答案 0 :(得分:1)

也许这会有所帮助:for _row in (select ....) loop dbms_output(_row.a || ..); end loop;