Oracle JOB 错误ora-12012

错误描述:

ORA-12012: error on auto execute of job 123
ORA-12005: may not schedule automatic refresh for times in the past


意思是:job号为123的任务,本次执行完job的时间比下次计划开始执行的时间晚。比如:

本次执行完JOB的时间是2014-8-21 23:01:00  计划下次执行时间是2014-8-21 23:00:00

这样就会报错。

显然,造成这种问题的出现是由于:每次JOB的执行时间大于interval的设置。


查看当前设置

begin
  sys.dbms_job.submit(job => :job,
                      what => 'p_tab_partition_mgr(sysdate+1,sysdate+1);',
                      next_date => to_date('21-08-2014 23:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'trunc(sysdate + 1) - 1 / 24');
  commit;
end;
/
可以看到,job每天晚上23点执行,而下次执行时间,  trunc(sysdate + 1) - 1 / 24')又是当前执行开始的时间23点。所以必然报错。

修改后:

declare 
	jobno number :=123;
begin
   
  sys.dbms_job.broken(job => 123,broken => true);
  sys.dbms_job.submit(job => jobno,
                      what => 'p_tab_partition_mgr(sysdate+1,sysdate+1);',
                      next_date => to_date('21-08-2014 23:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'trunc(sysdate + 2) - 1 / 24');
 commit;
 end;
  
修改为隔天的23点开始执行就对了。 trunc(sysdate + 2) - 1 / 24')


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值