定义一个job在指定的时间去执行指定的存储过程

定义一个job在指定的时间去执行指定的存储过程:

范例实现代码:

declare
job number;
begin
dbms_job.submit(job, 'auto_test_pro;', sysdate, 'TRUNC(SYSDATE + 1)');
end;

参数解释:

auto_test_pro    这里写的是你要指定执行的存储过程。
sysdate          这里要设置的时间是接下来要开始执行的时间。
trunc(sysdate+1) 这里要设置的是每次执行间隔
 

关于job操作的延伸:

  • 删除job
dbms_job.remove(job)
  • 修改要定时执行的操作
dbms_job.what(job,what);
  • 修改下次执行的时间
dbms_job.next_date(job,next_date);
  • 修改间隔时间
dbms_job.interval(job,interval);

关于job常用时间设置的延伸

 
    • 每分钟定时执行        :TRUNC(sysdate,'mi')+1/(24*60)
    • 每天凌晨1点定时执行   :TRUNC(sysdate)+1+1/(24)
    • 每天零点定时执行      :TRUNC(sysdate)+1
    • 每天早上8点半         :TRUNC(sysdate+1)+(8*60+30)/(24*60)
    • 每天中午12点          :TRUNC(sysdate)+12/24
    • 每个星期二的中午12点  :NEXT_DAY(TRUNC(sysdate),"TUESDAY")+12/24
    • 每个季度定时执行      :TRUNC(ADD_MONTHS(sysdate,3),'Q')+1/24
    • 每半年定时执行        :ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
    • 每年定时执行          :ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
原文地址:https://www.cnblogs.com/yaoxiaoxing/p/5112028.html