oracle存储过程exception 后面的代码要不要end结束啊?还是说exception后面的所有代码都属于它的呢?

2025-04-15 11:43:39
推荐回答(2个)
回答1:

declare
v varchar2(32);
begin
begin
select dummy into v from dual where dummy = '';
exception
when others then
dbms_output.put_line('1');
end;
dbms_output.put_line('2');
end;

可以自己试一下,把可能发生异常的代码放到begin end块中,exception后end前都属于异常执行范围,end后代码不在异常范围内。

回答2:

你是不是你当前的登录用户没有使用存储过程的权限呢?先试一下sysdba用户下会不会出现这个问题,如果也这样那就GRANT权限一下