Oracle存储过程异常处理
1、定义异常
declare
e_number_too_large exception;
begin
if number > 5000 then
raise e_number_too_large;
end if;
except
when e_number_too_large then
dbms_output.put_line('Number too large');
end;
2、捕获和处理异常
当异常发生时,可以使用“WHEN”子句来执行解决方案。此外,可以在“WHEN”子句中捕获所有未指定的异常,并在其中执行异常处理逻辑。这可以通过使用简单的“WHEN OTHERS then”格式来实现。
declare
begin
if number > 5000 then
end if;
except
when others then
dbms_output.put_line('Unexpected error occurred');
end;
3、自定义异常
此外,用户还可以定义特定的异常,它可以提示用户给定的操作出错了,并可以提供特定的提示信息。这可以通过使用RAISE_APPLICATION_ERROR函数实现。此函数可以用于引发一个异常,并向调用者发送一条消息。
declare
begin
if number > 5000 then
end if;
except
when others then
dbms_output.put_line('Unexpected error occurred');
end;
4、处理多个异常
当您的存储过程可能会引发多个异常时,您可以使用多个“WHEN”语句来处理它们:
declare
e_number_too_small exception;
e_number_too_large exception;
number number := 5;
begin
if number > 500 then
oracle手动调用存储过程
raise e_number_too_large;
elsif number < 5 then