0

私はオラクルでこのストアドプロシージャを取得しました

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 ブロック内のクエリ内にあります。クエリが 1 つの行のみを返す場合、問題はありませんが、クエリが複数の行を返す場合はどうすればよいでしょうか。私を助けてください

4

1 に答える 1

1

たぶんこれが役立ちます:for _row in (select ....) loop dbms_output(_row.a || ..); end loop;

于 2012-06-05T06:32:30.267 に答える