pl/sql有三種類型的異常錯誤
程序員
1. 預約義錯誤sql
oracle預約義的異常錯誤大約有24個,這種異常無需在程序中定義,由oracle自動將其引起。編程
ORA-1403 no_data_found select into 沒有找到數據oracle
ORA-1422 too_many_rows select into 返回多行
函數
2. 非預約義錯誤code
預約義以外其它標準的oracle錯誤,這種異常狀況須要在程序中定義,由oracle自動將其引起。orm
2.1 在pl/sql塊的定義部分定義異常狀況io
用戶定義的異常錯誤是經過顯示使用raise語句來觸發。當引起一個異常錯誤時,控制就轉向到exception塊異常錯誤部分,執行錯誤處理代碼。class
3. 用戶定義錯誤select
程序執行過程當中,出現編程人員認爲的非正常狀況,這種異常狀況須要程序員在程序中定義,而後顯示的在程序中將其引起。
<異常名稱> exception;
declare no_result exception; begin --sql語句 if sql%notfound then raise no_result; exception when no_result then dbms_output.put_line('沒有結果異常') end;
4. 在pl/sql中使用sqlcode、sqlerrm
爲了獲得完整的錯誤信息提示,咱們能夠使用sqlerrm和substr函數一塊兒獲得錯誤提示信息。
sqlcode 返回錯誤代碼數字
sqlerrm 返回錯誤信息
eg:
sqlcode = -100 -->sqlerrm='no_data-found'
sqlcode = 0 -->sqlerrm='normal,successful completion'