Oracle --異常處理

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'

相關文章
相關標籤/搜索