欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

实现oracle-job准确定时

发布时间:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 实现oracle-job准确定时 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

下面的代码将MyPkg.MyProc定于每日08:56执行,参数为系统日期前一天:

  • declare 
  •  n_job number;  
  • begin 
  •   sys.dbms_job.submit(job => n_job,  
  •                       what => 'MyPkg.MyProc(to_number(to_char(sysdate-1,''YYYYMMDD'')));',  
  •                       next_date => to_date('02-08-2012 08:56:00''dd-mm-yyyy hh24:mi:ss'),  
  •                       interval => 'trunc(sysdate)+1+(8*60+56)/(24*60)');  
  •   commit;  
  • end;  
  • 其中准确定时的关键片断是:

  • interval => 'trunc(sysdate)+1+(8*60+56)/(24*60)'
  • 网上搜索到的样例往往是sysdate+1,这会根据程序运行结束时间不停的推迟,例如假设程序运行时长始终是4分钟,那么第一天08:56执行,第二天就会09:00执行,第三天09:04执行,依次类推。本例计算公式中运用tunc(sysdate)规避程序运行结束时间的影响,用(8*60+56)/(24*60)来精确指定08:56执行,从而实现job准确定时。

    总结

    以上是生活随笔为你收集整理的实现oracle-job准确定时的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。