--如果是定时轮询的job 下面 submit函数里面的 第三个参数不填写
declare job number; begin dbms_job.submit(job, 'EXE_DATA_CHECKER;', '','TRUNC(sysdate) + 1 +2 / (24)'); commit; end;
DECLARE V_JOB NUMBER; BEGIN DBMS_JOB.SUBMIT(V_JOB, 'tb_datavalidator_wholeinfo;', SYSDATE, 'TRUNC(SYSDATE) + (12*60+37)/(24*60)'); COMMIT; END;
-- 查询定时任务
select job,next_date,what from dba_jobs
--删除定时任务
begin dbms_job.remove(70); commit; end;
部分规则为
每天午夜12点 ''TRUNC(SYSDATE + 1)''
每天早上8点30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)''
每星期二中午12点 ''NEXT_DAY(TRUNC(SYSDATE ), ''''TUESDAY'''' ) +
12/24''
每个月第一天的午夜12点 ''TRUNC(LAST_DAY(SYSDATE ) + 1)''
每个季度最后一天的晚上11点 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ),
''Q'' ) -1/24''
每星期六和日早上6点10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE,
''''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60
)''
PS 若想要查询下一个执行的时间为
select trunc(sysdate)+(8*60+45)/(24*60) from dual;