異常,程式執行過程中發生異常。異常是程式語言提供的一種功能,用來增強程式的健壯性和容錯性
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...