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

简介: 1、只保留一天的实时数据的触发器:CREATE OR REPLACE PROCEDURE PR_SYIT_T_SMSIS ENDTIME DATE; --错...

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,请谷歌、百度。

相关文章
|
1月前
|
SQL 存储 Oracle
Oracle系列十四:触发器
Oracle系列十四:触发器
|
2月前
|
SQL Oracle 关系型数据库
Oracle 将表中的数据查出更改某一字段的值后再插入该表
Oracle 将表中的数据查出更改某一字段的值后再插入该表
31 2
|
2月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
30 2
|
2月前
|
SQL Oracle 关系型数据库
Oracle查询优化-查询只包含数字或字母的数据
【2月更文挑战第4天】【2月更文挑战第10篇】查询只包含数字或字母的数据
81 1
|
3月前
|
Oracle 关系型数据库
Oracle查询优化-从表中随机返回N条数据
【1月更文挑战第2天】【1月更文挑战第5篇】有些场景需要抽验数据,例如为了防止做假或者抽检行为,就需要随机抽查。
41 0
|
3月前
|
Oracle 关系型数据库 数据库
Oracle查询优化-复制表的定义及数据
【1月更文挑战第5天】【1月更文挑战第14篇】在Oracle数据库中,复制表定义和复制表数据是两个常见的操作。
49 1
|
1月前
|
SQL Oracle 关系型数据库
Oracle insert数据时字符串中有‘单引号问题
Oracle insert数据时字符串中有‘单引号问题
|
3月前
|
Oracle 关系型数据库 Java
从 Oracle 数据库的 socket 中读取数据时,没有更多的数据可供读取。这可能是由于以下原因导致的:
【1月更文挑战第26天】【1月更文挑战第125篇】从 Oracle 数据库的 socket 中读取数据时,没有更多的数据可供读取。这可能是由于以下原因导致的:
23 1
|
3月前
|
Oracle 关系型数据库 流计算
Flink CDC里我通过oracle的connector往hudi插入数据
【1月更文挑战第23天】【1月更文挑战第115篇】Flink CDC里我通过oracle的connector往hudi插入数据
49 8
|
3月前
|
SQL Oracle 关系型数据库
Oracle-使用切片删除的方式清理非分区表中的超巨数据
Oracle-使用切片删除的方式清理非分区表中的超巨数据
37 1

推荐镜像

更多