Oracle存储过程跟踪错误的方法

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 ;
复制代码

 

 

 

复制代码
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.使用示例 

 

1
2
3
4
5
--存过过程实现主体
EXCEPTION
   WHEN  OTHERS  THEN
     PROC_SAVE_ERRMSG(biz_code /*此变量用于查找错误记录标记*/ ,DBMS_UTILITY.format_error_backtrace,sqlcode,SQLERRM);
END ;

  

--存过过程实现主体
EXCEPTION
   WHEN  OTHERS  THEN
     PROC_SAVE_ERRMSG(biz_code /*此变量用于查找错误记录标记*/ ,DBMS_UTILITY.format_error_backtrace,sqlcode,SQLERRM);
END ;

 

 

 

 

posted @   一只竹节虫  阅读(429)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2019-12-09 HIVE常用SQL语句及语法
点击右上角即可分享
微信分享提示