1、首先创建一个存储过程,procedure
create or replace procedure 存储过程名 is --删除7天的数据
begin
delete from t_table t
where t.created_time < sysdate - 7;
end 存储过程名;
2、创建Dbms_job
- 在对象浏览器中找到DBMS_Jobs,右键new弹出如下界面
job:一般自动生成,不管;
what:存储过程,注意存储过程后面加;
next date 可以不管;
interval:
(1)每分钟执行
Interval => TRUNC(sysdate,‘mi’) + 1/ (24*60) –或sysdate+1/1440
(2)每天定时执行
例如:每天的凌晨1点执行
Interval => TRUNC(sysdate+ 1) +1/ (24)
(3)每周定时执行
例如:每周一凌晨1点执行
Interval => TRUNC(next_day(sysdate,‘星期一’))+1/24
(4)每月定时执行
例如:每月1日凌晨1点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24
(5)每季度定时执行
例如每季度的第一天凌晨1点执行
TRUNC(ADD_MONTHS(SYSDATE,3),‘Q’) + 1/24
(6)每半年定时执行
例如:每年7月1日和1月1日凌晨1点
Interval => ADD_MONTHS(trunc(sysdate,‘yyyy’),6)+1/24
(7)每年定时执行
例如:每年1月1日凌晨1点执行
Interval =>ADD_MONTHS(trunc(sysdate,‘yyyy’),12)+1/24
也可以直接执行如下程序
- 程序执行如下
begin
sys.dbms_job.submit(job => :job,
-- 注意名字后面必须有“;”
what => '存储过程名;',
-- 下一次注意格式 日月年
next_date => to_date('21-01-2024 16:00:00', 'dd-mm-yyyy hh24:mi:ss'),
-- 执行间隔 每天16点执行
interval => 'TRUNC(sysdate+ 1) +16/ (24)');
commit;
end;