Oracle创建计划任务定时删除30天之前数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rexueqingchun/article/details/86304311

1.创建计划任务需要执行的存储过程

CREATE OR REPLACE 
PROCEDURE "PRO_INTERVAL_DELETE_LOG" AS
BEGIN
	DELETE FROM T_SYS_LOG WHERE CZSJ < SYSDATE-30;
END;

  备注:SQL为删除30天之前数据,可根据自身业务编写。

2.创建计划任务

DECLARE   
	DELETE_LOG_JOB NUMBER;      
BEGIN
	DBMS_JOB.SUBMIT(DELETE_LOG_JOB,'PRO_INTERVAL_DELETE_LOG;',SYSDATE,'TRUNC(SYSDATE+1)');
END;

  每分钟执行:TRUNC(SYSDATE,'MI')+1/(24*60)

  每天0点执行:TRUNC(SYSDATE+1)

  每月1日0点执行:TRUNC(LAST_DAY(SYSDATE)+1)

  每年1月1日0点执行:ADD_MONTHS(TRUNC(SYSDATE,'YYYY'),12)

3.查询所有计划任务

SELECT * FROM USER_JOBS;

4.运行计划任务

BEGIN
	DBMS_JOB.RUN(25); 
END;

  备注:25为查询出来的JOB任务ID

5.删除计划任务

BEGIN 
	DBMS_JOB.REMOVE(25); 
END;

猜你喜欢

转载自blog.csdn.net/rexueqingchun/article/details/86304311