ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DBMS_JOB之interval

DBMS_JOB之interval

原创 Linux操作系统 作者:Byself 时间:2011-05-04 16:30:26 0 删除 编辑
最近新建了一个JOB,原本定义的是每天晚上22:00执行,但查程序的执行记录一直都是每天的凌晨开始执行的。
1、原本以为是job_queue_processes的原因,毕竟那个时间段执行的job还是比较多的,因此昨天把参数改大了些,今天再次查看,但是仍旧是原本的情况。
2、将程序单独拿出来运行,程序是没有问题的,因此问题只有可能出在job的参数设置上,而控制JOB下次执行时间的是this date 和 interval,而interval的设置为
TRUNC(sysdate)+22/24,对于每天循环执行的这个job显然在这里决定下次执行时间的是interval。
3、为仔细弄清楚原因,因此模拟了一个job类似的环境。新建一个job,定义每天运行时间为16:00,interval为TRUNC(sysdate)+16/24,到了16:00查看job,发现job一直运行失败,因此可以得出结论是参数interval设置有问题。
4、总结后得出原因,对于原job,根据参数interval可以得出下次运行时间是当天22:00,但是当22:00启动JOB后,会出现一种情况,interval得到的next date小于this date,所以job会一直失败,直到凌晨00:00,会出现next date大于this date时,job才会正常执行。
因此正确的interval应该是TRUNC(sysdate)+46/24而非TRUNC(sysdate)+22/24

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14131447/viewspace-694432/,如需转载,请注明出处,否则将追究法律责任。

上一篇: DBMS_JOB执行
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2011-02-21

  • 博文量
    2
  • 访问量
    2964

最新文章