1.首先创建用于保存错误信息的表
CREATE TABLE TBL_PROC_ERRMSG ( BIZ_CODE VARCHAR2(50),ERR_LINE VARCHAR2(10),ERR_CODE VARCHAR2(10),MSG VARCHAR2(200),CRT_TM DATE DEFAULT SYSDATE );
2.创建保存错误信息的存过
CREATE OR REPLACE PROCEDURE PROC_SAVE_ERRMSG(BIZCODE IN VARCHAR2,ERRORLINE IN VARCHAR2,ERRORCODE IN VARCHAR2,MSG IN VARCHAR2) IS /*必须要使用自治事务,否则commit会影响调用程序事务*/ PRAGMA AUTONOMOUS_TRANSACTION; BEGIN INSERT INTO TBL_PROC_ERRMSG (BIZ_CODE,ERR_LINE,ERR_CODE,MSG) VALUES (BIZCODE,ERRORLINE,ERRORCODE,MSG); COMMIT; END;
3.使用示例
--存过过程实现主体 EXCEPTION WHEN OTHERS THEN PROC_SAVE_ERRMSG(biz_code/*此变量用于查找错误记录标记*/,DBMS_UTILITY.format_error_backtrace,sqlcode,sqlERRM); END;原文链接:https://www.f2er.com/oracle/211766.html