1. 程式人生 > >PL/SQL 使用者自定義異常操作例項

PL/SQL 使用者自定義異常操作例項

使用者自定義異常

PL/SQL允許根據程式的需要定義自己的異常。使用者定義的異常必須宣告,然後明確地提出使用一個RAISE語句或程式DBMS_STANDARD.RAISE_APPLICATION_ERROR。

宣告一個異常的語法是:

DECLARE
   my-exception EXCEPTION;

操作例項原始碼:

-- Created on 2018/4/2 by E.WANG 
/*
PL/SQL允許根據程式的需要定義自己的異常。
使用者定義的異常必須宣告,
然後明確地提出使用一個RAISE語句或程式DBMS_STANDARD.RAISE_APPLICATION_ERROR。
*/

DECLARE
    /*
    建立與屬性對應型別的變數;
    通過%獲取表屬性型別
    */
   e_empno    emp.empno%type;
   e_ename    emp.ename%type;
   e_job      emp.job%type;
   --定義一個無效的員工編號異常
   invalid_empno_expection exception;
BEGIN
   --e_empno值為-10
   e_empno:=-10;
   --給變數賦值
   if e_empno<0 then
      raise invalid_empno_expection;
   else
     SELECT ename,job INTO e_ename,e_job
     FROM emp
     WHERE empno=e_empno;
   end if;
   
   --輸出對應變數的值
   dbms_output.put_line('employee No:' || e_empno || 'employee Name: '|| e_ename || 'employee Position: ' || e_job);
   exception 
       when invalid_empno_expection then
          dbms_output.put_line('Emno must be greater than zero!');  
       when  no_data_found then
          dbms_output.put_line('No such customer!');
       when others then
         dbms_output.put_line('Error!'); 

END;

執行結果截圖: