根據(jù)Oracle錯(cuò)誤碼查看對(duì)應(yīng)是什么錯(cuò)誤導(dǎo)致的。
異常處理概念
異常情況處理(EXCEPTION)是用來處理正常執(zhí)行過程中未預(yù)料的事件,程序塊的異常處理預(yù)定義的錯(cuò)誤和自定義錯(cuò)誤,由于PL/SQL程序塊一旦產(chǎn)生異常而沒有指出如何處理時(shí),程序就會(huì)自動(dòng)終止整個(gè)程序運(yùn)行.有三種類型的異常錯(cuò)誤:
1. 預(yù)定義 ( Predefined )錯(cuò)誤
ORACLE預(yù)定義的異常情況大約有24個(gè)。對(duì)這種異常情況的處理,無需在程序中定義,由ORACLE自動(dòng)將其引發(fā)。
2. 非預(yù)定義 ( Predefined )錯(cuò)誤
即其他標(biāo)準(zhǔn)的ORACLE錯(cuò)誤。對(duì)這種異常情況的處理,需要用戶在程序中定義,然后由ORACLE自動(dòng)將其引發(fā)。
3. 用戶定義(User_define) 錯(cuò)誤
程序執(zhí)行過程中,出現(xiàn)編程人員認(rèn)為的非正常情況。對(duì)這種異常情況的處理,需要用戶在程序中定義,然后顯式地在程序中將其引發(fā)。
異常處理部分一般放在 PL/SQL 程序體的后半部,結(jié)構(gòu)為:
EXCEPTION
WHEN first_exception THEN <code to handle first exception >
WHEN second_exception THEN <code to handle second exception >
WHEN OTHERS THEN <code to handle others exception >
END;
異常處理可以按任意次序排列,但 OTHERS 必須放在最后.
內(nèi)容預(yù)覽:
ORA-00001: 違反唯一約束條件 (.)
ORA-00017: 請(qǐng)求會(huì)話以設(shè)置跟蹤事件
ORA-00018: 超出最大會(huì)話數(shù)
ORA-00019: 超出最大會(huì)話許可數(shù)
ORA-00020: 超出最大進(jìn)程數(shù) ()
ORA-00021: 會(huì)話附屬于其它某些進(jìn)程;無法轉(zhuǎn)換會(huì)話
ORA-00022: 無效的會(huì)話 ID;訪問被拒絕
ORA-00023: 會(huì)話引用進(jìn)程私用內(nèi)存;無法分離會(huì)話
ORA-00024: 單一進(jìn)程模式下不允許從多個(gè)進(jìn)程注冊(cè)
ORA-00025: 無法分配
ORA-00026: 丟失或無效的會(huì)話 ID
ORA-00027: 無法刪去當(dāng)前會(huì)話
ORA-00028: 您的會(huì)話己被刪去
ORA-00029: 會(huì)話不是用戶會(huì)話
ORA-00030: 用戶會(huì)話 ID 不存在。
ORA-00031: 標(biāo)記要?jiǎng)h去的會(huì)話
ORA-00032: 無效的會(huì)話移植口令
ORA-00033: 當(dāng)前的會(huì)話具有空的移植口令
ORA-00034: 無法在當(dāng)前 PL/SQL 會(huì)話中
ORA-00035: LICENSE_MAX_USERS 不能小于當(dāng)前用戶數(shù)
ORA-00036: 超過遞歸 SQL () 級(jí)的最大值
ORA-00037: 無法轉(zhuǎn)換到屬于不同服務(wù)器組的會(huì)話
ORA-00038: 無法創(chuàng)建會(huì)話: 服務(wù)器組屬于其它用戶
ORA-00050: 獲取入隊(duì)時(shí)操作系統(tǒng)出錯(cuò)
ORA-00051: 等待資源超時(shí)
ORA-00052: 超出最大入隊(duì)資源數(shù) ()
ORA-00053: 超出最大入隊(duì)數(shù)
ORA-00054: 資源正忙,要求指定 NOWAIT
ORA-00055: 超出 DML 鎖的最大數(shù)
ORA-00056: 對(duì)象 ‘.’ 上的 DDL 鎖以不兼容模式掛起
ORA-00057: 超出臨時(shí)表鎖的最大數(shù)
ORA-00058: DB_BLOCK_SIZE 必須為才可安裝此數(shù)據(jù)庫 (非 )
ORA-00059: 超出 DB_FILES 的最大值
ORA-00060: 等待資源時(shí)檢測(cè)到死鎖