分类: Oracle
2012-06-12 11:13:14
场景说明
某job的执行频率是每个月的5号,早上5点。设置完了循环间隔以及下次运行时间,发现这个job经常出错,手动运行job报以下错误,但是对应的存储过程测试是通过的。
Error running job 105:
ORA-12011: execution of 1 jobs failed
ORA-06512: at "SYS.DBMS_IJOB", line 406
ORA-06512: at "SYS.DBMS_JOB", line 272
ORA-06512: at line 1
并且发现下次运行时间并不是下个月的5号早上5点,而是次日下午的某个时间,很奇怪。
解决方法
我原先设置的循环间隔为 trunc(sysdate, 'MM') + 5 + 5 / 24,查看了其他同事的job,发现每天循环的间隔都是trunc(sysdate) + 1 + 5 / 24而不是trunc(sysdate) + 5 / 24,推测是这里我设置错了,所以我修改循环间隔为add_months(trunc(sysdate, 'MM'), 1) + 5 + 5 / 24,手动运行job不再出错,下次运行时间也正确了。