捕获异常在抛出异常的写法
--------------------------------
EXCEPTION
--其他异常
WHEN OTHERS THEN
sql_code := SQLCODE;
sql_msg := SQLERRM;
DBMS_OUTPUT.PUT_LINE('err code:' || sql_code);
DBMS_OUTPUT.PUT_LINE('err msg:' || sql_msg);
--循环处理中报错的场合出力主键值
DBMS_OUTPUT.PUT_LINE('主键1:' || key1);
DBMS_OUTPUT.PUT_LINE('主键2:' || key2);
--异常在调用
RAISE;
--------------------------------
查不到数据时会发生异常,写法如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
|
declare
int_a number;
begin
begin
select
a
into
int_a
from
taba
where
1 = 2;
exception
when
no_data_found
or
to_many_rows
then
null
;
--或者写0件时的处理
end
;
dbms_output.put_line(int_a);
end
;
/
|