close
列出比較常用的 Exception
異常 |
Oracle錯誤編號 |
SQLCODE值 |
簡單描述 |
ACCESS_INTO_NULL |
ORA-06530 |
-6530 | 程式嘗試為一個未初始化(自動賦為Null)對象的屬性給值 |
CASE_NOT_FOUND |
ORA-06592 |
-6592 | CASE語句中沒有任何WHEN子句滿足條件,並且沒有編寫ELSE子句 |
COLLECTION_IS_NULL |
ORA-06531 |
-6531 | 程式嘗試調用一個未初始化(自動賦為Null)嵌套表或變長數組的集合方法(不包括EXISTS),或者是程式嘗試為一個未初始化嵌套表或變長數組的元素給值 |
CURSOR_ALREADY_OPEN |
ORA-06511 |
-6511 | 程式嘗試打開一個已經打開的Cursor。一個Cursor在重新打開之前必須關閉。一個游標FOR循環會自動打開它所引用的游標。所以,我們的程式不能在循環內部打開Cursor |
DUP_VAL_ON_INDEX |
ORA-00001 |
-1 | 程式嘗試向一個有著Index的Table中保存重複Index值 |
INVALID_CURSOR |
ORA-01001 |
-1001 | 程式嘗試操作一個不合法的Cursor,例如關閉一個未打開的Cursor |
INVALID_NUMBER |
ORA-01722 |
-1722 | 在一個SQL語句中,由於字串並不代表一個有效的數字,導致字串向數字轉換時會發生錯誤。(在過程化語句中,會拋出異常VALUE_ERROR)。當FETCH語句的LIMIT子句表達式後面不是一個正數時,這個異常也會被拋出 |
LOGIN_DENIED |
ORA-01017 |
-1017 | 程式嘗試使用無效的用戶名和/或密碼來登錄Oracle |
NO_DATA_FOUND |
ORA-01403 |
100 |
ELECT INTO語句沒有返回資料,或者是我們的程式引用了一個嵌套表中被刪除了的元素或是索引表中未初始化的元素。SQL聚合函數,如AVG和SUM,總是能返回一個值或空。所以,一個調用聚合函數的SELECT INTO語句從來不會拋出NO_DATA_FOUND異常。FETCH語句最終會取不到資料,當這種情況發生時,不會有異常拋出的 |
NOT_LOGGED_ON |
ORA-01012 |
-1012 | 程式沒有連接到Oracle就要調用資料庫 |
PROGRAM_ERROR |
ORA-06501 |
-6501 | 程式發生內部錯誤 |
ROWTYPE_MISMATCH |
ORA-06504 |
-6504 | 賦值語句中使用的主Cursor變量和PL/SQLCursor變量的類型不兼容。例如,當一個打開的主Cursor變量傳遞到一個存儲子程式時,實參的返回類型和形參的必須一致 |
SELF_IS_NULL |
ORA-30625 |
-30625 |
程式嘗試調用一個空實例的MEMBER方法。也就是內置參數SELF(它總是第一個傳遞到MEMBER方法的參數)是空 |
STORAGE_ERROR |
ORA-06500 |
-6500 | PL/SQL運行時內存溢出或內存不足 |
SUBSCRIPT_BEYOND_COUNT |
ORA-06533 |
-6533 | 程式引用一個嵌套表或變長數組元素,但使用的下標索引超過嵌套表或變長數組元素總個數 |
SUBSCRIPT_OUTSIDE_LIMIT |
ORA-06532 |
-6532 | 程式引用一個嵌套表或變長數組,但使用的下標索引不在合法的範圍內(如-1) |
SYS_INVALID_ROWID |
ORA-01410 |
-1410 | 從字串向ROWID轉換發生錯誤,因為字串並不代表一個有效的ROWID |
TIMEOUT_ON_RESOURCE |
ORA-00051 |
-51 | 當Oracle等待資源時,發生超時現象 |
TOO_MANY_ROWS |
ORA-01422 |
-1422 | SELECT INTO語句返回多行資料 |
VALUE_ERROR |
ORA-06502 |
-6502 | 發生算術、轉換、截位或長度約束錯誤。例如,當我們的程式把一個字段的值放到一個字符變數中時,如果值的長度大於變數的長度,PL/SQL就會停止給值操作並拋出異常VALUE_ERROR。在過程化語句中,如果字串向數字轉換失敗,異常VALUE_ERROR就會被拋出。(在SQL語句中,異常INVALID_NUMBER會被拋出) |
ZERO_DIVIDE |
ORA-01476 |
-1476 | 程式嘗試除以0 |
全站熱搜