将记录日志单独存放成一个普通的存储过程
CREATE OR REPLACE PROCEDURE record_error
IS
l_code PLS_INTEGER := SQLCODE;
l_mesg VARCHAR2(32767) := SQLERRM;
BEGIN
INSERT INTO error_log (error_code
, error_message
, backtrace
, callstack
, created_on
, created_by)
VALUES (l_code
, l_mesg
, sys.DBMS_UTILITY.format_error_backtrace
, sys.DBMS_UTILITY.format_call_stack
, SYSDATE
, USER);
end;
在别的存储过程的异常处理中使用
DECLARE
i_number NUMBER (1);
BEGIN
i_number:=100;
insert into student values(4,'d',99);
insert into student values(5,'e',100);
EXCEPTION
WHEN OTHERS