处理PL/SQL错误:捕获异常,不把它
问题描述:
我有引发此异常处理PL/SQL错误:捕获异常,不把它
error_stack -> ORA-00030: El identificador de sesión del usuario no existe.
error_backtrace -> ORA-06512: en "OF_OWNER.GET_INVOICES", línea 46
call_stack -> ----- PL/SQL Call Stack -----
object line object
handle number name
00000010DB020548 59 procedure OF_OWNER.GET_INVOICES
000000112A537E58 2 anonymous block
一个过程,但我不希望程序提出任何例外在这种情况下,我已经试过
...
WHEN 'ORA-00030' THEN
WHEN OTHERS
...
但我得到一个编译错误
答
或者:
BEGIN
do something
EXCEPTION WHEN OTHERS THEN
IF SQLCODE = -30 THEN
NULL; -- ignore this particular exception
ELSE
RAISE; -- but throw the others
END IF;
END;
或者:
DECLARE
ORA00030 EXCEPTION; -- or any other name you like instead of ORA00030
pragma EXCEPTION_INIT(ORA00030, -30); -- link your exception name to the code
BEGIN
do something
EXCEPTION WHEN ORA00030 THEN
NULL; -- ignore this particular exception
END;
试试这个\t'例外 WHEN OTHERS THEN IF SQLCODE = -00030THEN \t \t \t \t \t \t \t DBMS_OUTPUT.PUT_LINE( '有一个错误');' – Moudiz
出去!好奇 - 为什么你想忽略那个错误?这没有任何意义 - 如果你的程序不会引发错误,那么其他的事情肯定会中断,因为会话不再存在。 –