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