请教各位高手 oracle 存储过程 如何获得 捕获异常的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教各位高手 oracle 存储过程 如何获得 捕获异常的内容相关的知识,希望对你有一定的参考价值。

rt

参考技术A --通过sqlcode , sqlerrm 这两个内置变量来查看,例如:

DECLARE
--声明异常
some_kinds_of_err EXCEPTION; -- Exception to indicate an error condition

v_ErrorCode NUMBER; -- Variable to hold the error message code
v_ErrorText VARCHAR2(200); -- Variable to hold the error message text

BEGIN
--...
--抛出异常
IF ( ... ) THEN --(括号内填抛出异常的条件)
RAISE some_kinds_of_err;
END IF;
--...
EXCEPTION
--捕捉异常
WHEN some_kinds_of_err THEN
/* do something to Handler the errors */
null;
--捕捉其他异常,并获得 捕获异常的内容
WHEN OTHERS THEN
v_ErrorCode := SQLCODE;
v_ErrorText := SUBSTR(SQLERRM, 1, 200);
-- Note the use of SUBSTR here.

dbms_output.put_line(v_ErrorCode || '::'||v_ErrorText);
END;
/

/**
sqlcode 就是错误代码
sqlerrm 就是sql错误信息。注意用substr来截取,否则输出很难看。

**/本回答被提问者采纳
参考技术B begin
plsql语句串;
exception when others
then
dbms_output.put_line(sqlcode||' '|| SQLERRM);

end;

以上是关于请教各位高手 oracle 存储过程 如何获得 捕获异常的内容的主要内容,如果未能解决你的问题,请参考以下文章

各位大侠,请教个oracle问题,执行一段代码出现错误,希望各位给出解决办法,谢谢谢!

请教关于oracle中写存储过程时 select into 语句报错的问题

请教各位高手Django的url配置问题

请教各位高手Django的url配置问题

oracle存储过程中参数datatable如何接收,求高手!

请教各位,如何获得redis中key的已经存在的时间