Oracle中異常處理方法

來源:互聯網
上載者:User

  在寫預存程序中,有時候需要返回出錯的原因,以方便查看記錄。

  Oracle提供了以下異常:

  1.預定義異常:用於處理常見的Oracle錯誤。

  2.非預定義異常:用於處理預定義異常所不能處理的Oracle錯誤。

  3.自訂異常:用於處理Oracle錯誤無關的其它情況。

  異常處理以關鍵字Exception開始,文法如下:

  EXCEPTION
      WHEN  exception_Name THEN  --exception_Name為異常的名字
         statement1;

   WHEN OTHERS THEN
      statement1;

 

 常見系統異常參考表:

命名的系統異常         產生原因 
 access_into_null        未定義對象 
 CASE_NOT_FOUND       CASE 中若未包含相應的 WHEN ,並且沒有設定 ELSE 時 
 COLLECTION_IS_NULL     集合元素未初始化 
 CURSER_ALREADY_OPEN    遊標已經開啟 
 DUP_VAL_ON_INDEX       唯一索引對應的列上有重複的值 
 INVALID_CURSOR        在不合法的遊標上進行操作 
 INVALID_NUMBER        內嵌的 SQL 陳述式不能將字元轉換為數字 
 NO_DATA_FOUND        使用 select into 未返回行,或應用索引表未初始化的元素時 

  TOO_MANY_ROWS        執行 select into 時,結果集超過一行 
  ZERO_DIVIDE          除數為 0 
  SUBSCRIPT_BEYOND_COUNT  元素下標超過巢狀表格或 VARRAY 的最大值 
  SUBSCRIPT_OUTSIDE_LIMIT   使用巢狀表格或 VARRAY 時,將下標指定為負數 
  VALUE_ERROR          賦值時,變數長度不足以容納實際資料 
  LOGIN_DENIED          應用程式串連到 oracle 資料庫時,提供了不正確的使用者名稱或密碼 
  NOT_LOGGED_ON         PL/SQL 應用程式在沒有串連 oralce 資料庫的情況下訪問資料 
  PROGRAM_ERROR         PL/SQL 內部問題,可能需要重裝資料字典& pl./SQL 系統包 
  ROWTYPE_MISMATCH       宿主遊標變數與 PL/SQL 遊標變數的傳回型別不相容 
  SELF_IS_NULL          使用物件類型時,在 null 對象上調用對象方法 
  STORAGE_ERROR         運行 PL/SQL 時,超出記憶體空間 
  SYS_INVALID_ID         無效的 ROWID 字串 
  TIMEOUT_ON_RESOURCE    Oracle 在等待資源時逾時 

 

樣本:

DECLARE
    e_integrity EXCEPTION;  --1、定義部分
    PRAGMA EXCEPTION_INIT (e_integrity, -2291);  --2、建立關聯關係
BEGIN
    Update  emp Set deptno=  :dno Where  empno= :eno;
EXCEPTION
    WHEN  e_integrity THEN  --3、捕捉處理
      DBMS_OUTPUT.PUT_LINE(‘該部門不存在’);
END;


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.