oracle存储过程 捕获异常
在oracle存储过程中,碰到一个查询不到数据,导致抛出oracle异常的问题,
下面是示例:
v_no varchar2(50);--这是一个用来存储查询出来数据的中间变量
v_sql := 'select fvalue from zy.tparam where fcode = 9999';//这是sql语句
execute immediate v_sql into v_no;--这句报错了,因为查不到数据
if v_no is null then
resultCode := '4700';
resultMessage := '自定义的报错信息';
return;
end if;
...省略...
增加了一个异常捕获机制,让它捕获到这个异常:
v_no varchar2(50);--这是一个用来存储查询出来数据的中间变量
v_sql := 'select fvalue from zy.tparam where fcode = 9999';//这是sql语句
begin
execute immediate v_sql into v_no;--这句报错了,因为查不到数据
exception--捕获到异常
when others then
resultCode := '4700';
resultMessage := '自定义的报错信息';
return;--捕获到异常那就直接返回了,或者你可以不返回继续下一步,进行你需要的操作
end;
if v_no is null then
resultCode := '4700';
resultMessage := '自定义的报错信息';
return;
end if;
...省略...
发表评论