ORACLE表数据触发器,仅保留一天的实时数据

1、只保留一天的实时数据的触发器:

CREATE OR REPLACE PROCEDURE PR_SYIT_T_SMS
IS
    ENDTIME   DATE;
    
    --错误日志变量声明
    v_ErrorCode NUMBER;            -- Code for the error
    v_ErrorMsg VARCHAR2(200);      -- Message text for the error
    v_CurrentUser VARCHAR2(8);     -- Current database user
    v_Information VARCHAR2(100);   -- Information about the error

BEGIN
      
       -- 判断时间,对历史表进行插入操作,对当前表进行删除数据,当前表只保留一天的数据
          ENDTIME:= SYSDATE -1;          
            
          --向历史表写入运行数据
          INSERT INTO T_SMS_HISTORY QUERY
               SELECT * FROM T_SMS WHERE WARNTM <= ENDTIME;

          --清除当前表中一天前的数据
          DELETE FROM T_SMS WHERE WARNTM <= ENDTIME;

          COMMIT;
       END IF;
      
    EXCEPTION
    WHEN OTHERS THEN
              
       ROLLBACK;

       -- Assign values to the log variables, using built-in functions.
       v_ErrorCode := SQLCODE;
       v_ErrorMsg := SQLERRM;
       v_CurrentUser := USER;
       v_Information := '用户: ' || v_CurrentUser;
       INSERT INTO   ERROR_LOG (ERROR_CODE, ERROR_MESSAGE, ERROR_INFO, TIME)
                   VALUES (v_ErrorCode, v_ErrorMsg, v_Information, SYSDATE);
              
       COMMIT;
END;

2、创建JOB,定时执行上面的触发器,即可,关于如何创建JOB,请谷歌、百度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值