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

本文详细介绍如何在Oracle中创建并使用存储过程进行定期数据清理,包括创建存储过程、设置计划任务、查询、运行及删除任务的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值