Oracle中異常處理

2021-07-14 19:07:52 字數 2169 閱讀 5111

能夠檢測並且進行錯誤處理的叫做異常,一般分為使用者自定義異常,系統預定義異常。

一:除數是

0的系統異常

declare

v_number  

number(2

):=10

;v_zero  

number(2

):=0

;v_result  

number(5

);begin

--v_number/v_zero,

會產生系統異常

v_result:=v_number/v_zero;

end;

二:處理上面的異常

declare

v_number  

number(2

):=10

;v_zero  

number(2

):=0

;v_result  

number(5

);begin

--v_number/v_zero,

會產生系統異常

v_result:=v_number/v_zero;

exception

when

zero_divide  

then

dbms_output.put_line(

'除數不能為

0');

end;

三:多異常處理

declare

v_result   country.country_name%

type

;begin

select

country_name  

into

v_result

from

country  

where

country_name=

'beijing'

;dbms_output.put_line(

'the  country  name  is '

||v_result);

exception

when

too_many_rows  

then

dbms_output.put_line(

'there  is  too_many_rows  error'

);when

no_data_found  

then

dbms_output.put_line(

'there  is  no_data_found  error'

)end;

常見的系統預定義異常 1

dup_val_index

違反了唯一性 2

login_denied

使用者名稱或密碼錯誤 3

no_data_found

沒有發現資料 4

too_many_rows

資料行太多 5

value_error

演算法或轉換錯誤

呼叫自定義異常處理需要使用raise關鍵字處理

一:自定義異常過程

declare

v_overnmber 

exception

; --

定義異常處理變數

v_salesnumber  

number(9

); --

當前的訂單數

v_maxnumber  

number(9

):=500

; --

定義允許的最大值

begin

--從表中取出數量

select

count

(*)  

into

v_salesnumber  

from

sales;

--比較當前單數和最大的單數的,如果超過最大單數,就進行異常處理

ifv_maxnumberthen

--進行異常處理

raise

e_overnumber;

endif

;exception

when

e_overnumber  

then

dbms_output.put_line(

'查到的單數超過最大數,資料異常');

end;

ORACLE 異常處理

一 開發pl sql程式時,需要考慮到程式執行時可能出現的各種異常,當異常出現時,或是中斷程式執行,或是使程式從錯誤中恢復,從而繼續執行。常用的異常型別有 no data found 沒有發現資料 too many rows select into 語句查詢結果有多個資料行 others 可以捕捉所...

Oracle 異常處理

1 什麼是異常 在pl sql 中的乙個警告或錯誤的情形都可被稱為異常。包括編譯時錯誤 pls 和執行時錯誤 ora 乙個異常通常包含乙個錯誤 和錯誤文字,分別指示異常的編號和具體錯誤資訊。異常情況處理 exception 是用來處理正常執行過程中未預料的事件,程式塊的異常處理預定義的錯誤和自定義錯...

Oracle 異常處理

異常處理 處理程式不可意料的操作,防止程式崩潰,起到友好提示 語法 exception when 異常型別 then 異常處理 異常型別 處理相關的異常 others 處理所有的異常 no data found 沒有找到資料 too many rows 返回資料行數過多自定義異常 實行彈窗的方式提示...