Oracle之例外(異常)

2021-09-08 21:15:19 字數 1871 閱讀 6853

異常,程式執行過程中發生異常。異常是程式語言提供的一種功能,用來增強程式的健壯性和容錯性

declare

--宣告變數

begin

--業務邏輯

exception

--處理異常

when 異常1 then

...when 異常2 then

...when others then

...處理其它異常

end;

名稱描述

no_data_found 

沒有找到資料

value_error

算術或轉換錯誤

too_many_rows

查詢出了多行記錄,賦值給rowtype記錄一行資料變數

zero_divide

被零除timeout_on_resource

等待資源異常

declare

vi number;

vrow emp%rowtype;

begin

--vi := 8/0;

--vi := 'aaa';

--select * into vrow from emp;

select * into vrow from emp where empno=1234567;

exception

when zero_divide then

dbms_output.put_line('發生了除零異常');

when value_error then

dbms_output.put_line('發生了型別轉換異常');

when too_many_rows then

dbms_output.put_line(' 查詢出多行記錄,但是賦值給了rowtype記錄一行資料變數');

when no_data_found then

dbms_output.put_line('沒有找到資料異常');

when others then

dbms_output.put_line('發生了其它異常' || sqlerrm);

end;

--自定義異常:  

異常名 exception; --宣告異常

--拋出自定義的異常

raise 異常名;

--查詢指定編號的員工,如果沒有找到,則拋出自定義的異常

/* --錯誤的演示

1.宣告乙個變數 %rowtype

2.查詢員工資訊,儲存起來

3.判斷員工資訊是否為空

4. 如果是 則丟擲異常

*/declare

-- 1.宣告乙個變數 %rowtype

vrow emp%rowtype;

--2 .宣告乙個自定義的異常

no_emp exception;

begin

--查詢員工資訊,儲存起來

select * into vrow from emp where empno = 8888; --丟擲異常

if vrow.sal is null then

raise no_emp; --拋出自定義的異常

end if;

exception

when no_emp then

dbms_output.put_line('輸出了自定義的異常');

when others then

dbms_output.put_line('輸出了其它異常'||sqlerrm);

end;

PL SQL 例外(異常) exception

異常是程式語言提供的一種功能,用來增強程式的健壯性和容錯性。1.系統定義異常 no data found 沒有找到資料 too many rows select into語句匹配多個行 zero divide 被零除 value error 算術或轉換錯誤 timeout on resource 在...

PL SQL程式之例外

什麼是例外?例外是程式語言提供的一種功能,用來增強程式的健壯性和容錯性 oracle的異常處理 系統定義例外 no data found 沒有找到資料 too many rows select into語句匹配多個行 zero divide 被零除 value error 算術或轉換錯誤 timeo...

Oracle常用命令10 oracle例外處理

例外傳遞 如果不處理例外我們看看會出現什麼情況 案例,編寫乙個過程,可接收雇員的編號,並顯示該雇員的姓名。問題是,如果輸入的雇員編號不存在,怎樣去處理呢?例外案例 declare 定義 v ename emp.ename type begin 執行 select ename into v ename...