0

我在 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 块内的查询内部,如果查询返回一行且仅一行,则没有问题,但是当查询返回多行时,我在想我可以使用另一个游标,但不知道如何使用。请帮我

4

1 回答 1

1

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

于 2012-06-05T06:32:30.267 回答