oracle 使用異常exception
異常
異常(exception)是一種PL/SQL
識別符號,它用於處理PL/SQL
程式的執行錯誤。Oracle提供了預定義異常、非預定義異常和自定義異常等三種異常型別,其中預定義異常用於處理常見的Oracle錯誤,非預定義異常用於處理預定義異常所不能處理的Oracle錯誤,自定義異常用於處理與Oracle錯誤無關的其他情況。
1.語法
EXCEPTION
WHEN exception1 [OR exception2...] THEN
statement1;
statement2;
...
WHEN exception3 [ OR exception4...] THEN
statement1;
statement2;
...
WHEN OTHERS THEN
statement1;
statement2;
...
2.預定義異常
2.1 說明
PL/SQL為開發人員提供了20多個預定義異常,每個預定義異常都對應一個Oracle錯誤。下面是常見的預定義異常:
(1)NO_DATA_FOUND
:該異常對應於ORA-01403
錯誤。當執行SELECT INTO
未返回行,或者引用未初始化的PL/SQL表元素時,會隱含地觸發該異常。
(2)TOO_MANY_ROWS
:該異常對應於ORA-01422
錯誤。當執行SELECT INTO
語句時,如果返回超過一行,則會觸發該異常。
(3)DUP_VAL_ON_INDEX
:該異常對應於ORA-00001
錯誤。當在惟一索引所對應的列上鍵入重複值時,會隱含觸發該異常。
(4)ZERO_DIVIDE
:該異常對應ORA-01476
錯誤。如果使用數字值除0,則會隱含觸發該異常。
(5)INVALID_CURSOR
:該異常對應ORA-01001
錯誤。當試圖在不合法的遊標上執行操作時,會隱含地觸發該異常。例如,從未開啟的遊標提取資料或者關閉未開啟的遊標,則會觸發該異常。
2.2 使用示例
3.非預定義異常
3.1 說明
當使用預定義異常時,只能處理21個Oracle錯誤。為了處理其他Oracle錯誤,必須使用非預定義異常。
使用步驟:
定義異常(e_integrity EXCEPTION
)—>關聯異常和錯誤(PRAGMA EXCEPTION_INIT(e_integrity,-2291)
)—>引用異常(WHEN e_integrity THEN statement1...
;
3.2 使用示例
4.自定義異常
4.1 說明
自定義異常與Oracle錯誤沒有任何關聯,它是由開發人員為特定情況所定義的異常。
使用步驟:
定義異常(e_no_employee EXCEPTION
)—>顯式觸發異常(RAISE e_no_employee
)—>引用異常(WHEN e_no_employee THEN statement1...
;
4.2 使用示例
相關文章
- 異常(Exception)Exception
- Sanic Exception – 異常Exception
- PHP 異常類 ExceptionPHPException
- Java中Error和Exception的異同以及執行時異常(Runtime exception)與檢查型異常(checked exception)的區別JavaErrorException
- NETCORE - 全域性異常處理(Exception)NetCoreException
- api模式下修改異常類ExceptionAPI模式Exception
- muduo網路庫Exception異常類Exception
- PHP基礎:異常處理ExceptionPHPException
- oracle 異常Oracle
- 甩鍋(throws)_ java異常(Exception)處理JavaException
- C++筆記 14:審慎使用異常規格(exception specifications)C++筆記Exception
- C++ exception 異常類繼承關係C++Exception繼承
- Oracle exceptionOracleException
- oracle異常處理Oracle
- Spring Cloud Gateway自定義異常處理Exception HandlerSpringCloudGatewayException
- Oracle:異常ORA-01950Oracle
- Java中的Exception拋異常對效能的影響 - BaeldungJavaException
- oracle主動丟擲異常Oracle
- Oracle 監聽異常處理Oracle
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- oracle常見異常等待——latch處理思路Oracle
- 兩種異常(CPU異常、使用者模擬異常)的收集
- Oracle 中的exception——(Raise)OracleExceptionAI
- python自定義異常,使用raise引發異常PythonAI
- MVC使用異常過濾器處理異常MVC過濾器
- 解決 發生異常: RuntimeError (note: full exception trace is shown but execution is paused at: <module>)ErrorException
- laravel-exception-notify - 支援多種通道的 laravel 異常監控通知LaravelException
- Oracle asm磁碟損壞異常恢復OracleASM
- Oracle開發基礎-異常處理Oracle
- 異常詳細資訊: System.ComponentModel.Win32Exception: 拒絕訪問。Win32Exception
- 記Linux使用異常2Linux
- Java異常使用原則Java
- oracle例項啟動異常慢案例一Oracle
- oracle分散式事務異常處理方法Oracle分散式
- 【TABLE】Oracle監控異常的表設計Oracle
- Oracle Linux 6.7中 Oracle 11.2.0.4 RAC叢集CRS異常處理OracleLinux
- Oracle Net Configuration Assistant failed異常的解決方案OracleAI