暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle 添加异常日志

原创 Oracle 2022-09-13
436
-- 存储过程同步数的 异常日志 
CREATE OR REPLACE PROCEDURE SP_EMP_0615 
 IS  
 
---- 定义记录日志所需的变量
  V_SP_NAME               VARCHAR2(30)  ;    -- 过程名称
  V_SP_STATUS             VARCHAR2(12)  ;    -- 执行状态
  V_START_DATE            DATE        ;    -- 开始同步时间
  V_FINSH_DATE            DATE      ;    -- 完成同步时间
  V_SP_DESC               VARCHAR2(50)  ;    -- 描述
BEGIN
 --------- 初始化变量
 V_SP_NAME         :=   'SP_EMP_0615' ;   -- 过程名称
 V_SP_STATUS       :=   '开始'  ;               -- 执行状态
 V_START_DATE      :=   SYSDATE ;               -- 开始同步时间

  -- 记录开始日志
    SP_T_LOG(  V_SP_NAME,        -- 过程名称
               V_SP_STATUS,      -- 执行状态
               V_START_DATE ,    -- 开始同步时间
               V_FINSH_DATE,     -- 完成同步时间
               V_SP_DESC);       -- 描述

  
---------------------------------------- 开始同步数据 ------------------------------------------
  DELETE FROM  EMP_0615 WHERE 1 = 1 ;
  INSERT INTO  EMP_0615(EMPNO,
                        ENAME,
                        SAL,
                        HIREDATE,
                        LAST_UPDATE_DATE)
                 SELECT EMPNO ,
                        ENAME ,
                        SAL ,
                        HIREDATE ,
                        SYSDATE
                   FROM EMP ; 
  COMMIT ;
---------------------------------------- 同步数据完成 ------------------------------------------
 ----------- 再次初始化变量
   V_SP_STATUS        :=  '完成' ;    -- 执行状态
   V_FINSH_DATE       :=  SYSDATE ;   -- 完成同步时间
  -- 记录完成日志
    SP_T_LOG(  V_SP_NAME,        -- 过程名称
               V_SP_STATUS,      -- 执行状态
               V_START_DATE ,    -- 开始同步时间
               V_FINSH_DATE,     -- 完成同步时间
               V_SP_DESC);       -- 描述



            
---- 异常处理部分 ,如果存储过程执行过程中没有出现异常,这部分代码是不会执行的        
EXCEPTION 
   WHEN OTHERS THEN    -- 判断只要出现异常 ,那么执行下面的动作 
     -- 动作1 回滚数据
     ROLLBACK ;   
     -- 动作2 记录异常日志       
     V_SP_STATUS        :=  '错误' ;   -- 执行状态
     V_SP_DESC          :=  SQLERRM ;  -- 异常信息      
       
     SP_T_LOG(  V_SP_NAME,        -- 过程名称
           V_SP_STATUS,      -- 执行状态
           V_START_DATE ,    -- 开始同步时间
           V_FINSH_DATE,     -- 完成同步时间
           V_SP_DESC);       -- 描述        


END  SP_EMP_0615;
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论