Oracle中PL/SQL之例外(異常)的使用
阿新 • • 發佈:2018-11-05
1、系統定義異常:
異常是程式設計語言提供的一種功能,用來增強程式的健壯性和容錯性。
no_data_fount | (沒有找到資料) |
too_many_rows | (select ... into 語句匹配多個行) |
zero_divide | (被零除) |
value_error | (算術或轉換錯誤) |
timeout_on_resource | (在等待資源時發生超時) |
例子:0不能做分母的異常
declare
pnum number;
begin
pnum := 1/0;
exception
when zero_divide then
dbms_output.put_line('0不能做分母');
when value_error then
dbms_output.put_line('算術或轉換錯誤');
when others then
dbms_output.put_line('其它錯誤');
end;
2、自定義異常,在宣告中來定義異常
如果遇到異常我們要丟擲異常,丟擲異常的語句是 raise 異常名
例子:查詢部門編號是50的員工姓名
declare no_emp_found exception; pename emp.ename%type; cursor pemp is select t.ename from emp t where t.deptno=50; begin open pemp; fetch pemp into pename; if pemp%notfound then --丟擲自定義異常 raise no_emp_found; end if; close pemp; exception when no_emp_found then dbms_output.put_line('沒有找到員工'); when others then dbms_output.put_line('其它錯誤'); end;