1. 程式人生 > >Oracle 非預定義異常

Oracle 非預定義異常

-- 刪除dept表中指定部門的資訊
-- 分析:dept和emp表之間具有主外來鍵的關係,當刪除指定部門的資訊時,應確保該部門下沒有員工
declare
  -- 1.定義非預定義異常
  e_fk exception;
  -- 2.把Oracle錯誤與異常建立關聯
  --  -2292 違反外來鍵約束的錯誤編號
  pragma exception_init(e_fk,-2292);
begin
  delete from dept where deptno = &deptno;
  exception
    when e_fk then
       -- 3.捕捉並處理異常
      dbms_output.put_line('此部門下有員工,無法刪除!');
    when others then
      -- sqlcode 獲得oracle錯誤編號,sqlerrm獲取oracle錯誤資訊
      dbms_output.put_line(sqlcode||'###'||sqlerrm);
end;