0

job_id私のコードは、ユーザーが指定した最高​​の給与と従業員数を取得します。これは、Oracle 10g Express Edition の SQL コードです。指定された場所で最高の給与を持つ従業員が 2 人いることを検出する例外ハンドラーを作成するには、コードに疑問符を付けるべきだと思いますjob_id...みんな助けてください、例外セクションの疑問符で使用する必要があるキーワードは何だと思いますか?

DECLARE

lvn_emp_tot    NUMBER;
lvn_max_sal    NUMBER;
lvc_jb_id      VARCHAR2(30) := :JOB_ID;


BEGIN

  SELECT job_id, max(salary), count(job_id)
    INTO lvc_jb_id, lvn_max_sal, lvn_emp_tot
    FROM Employees
   WHERE job_id = lvc_jb_id
   GROUP BY job_id; 

  DBMS_OUTPUT.PUT_LINE('Maximum salary:  '||lvn_max_sal);
  DBMS_OUTPUT.PUT_LINE('Number of Employees: '||lvn_emp_tot);

EXCEPTION
    WHEN ? THEN 
    DBMS_OUTPUT.PUT_LINE('More than one employee has the highest salary');

END;
4

1 に答える 1

0

その前にクエリを変更してください:

select job_ID,salary,count(*) INTO lvc_jb_id, lvn_max_sal, lvn_emp_tot 
from Employees
where salary= (
                 SELECT max(salary)
                 FROM Employees
                 WHERE job_id = input_jobid
                 GROUP BY job_id
              )
group by job_ID; 

宣言ブロックで:

ex_custom EXCEPTION;

およびクエリの後:

if lvn_emp_tot>1 then
    raise ex_custom ;    
end if;

このすべての後:

?=ex_custom;)

于 2012-11-26T06:31:08.460 に答える