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