用PL/SQL设置了一个自动执行的作业,以前要求在每晚23点执行,我做了如下设置
begin
  sys.dbms_job.submit(job => :job,
                      what => 'recordschedule;',
                      next_date => to_date('21-05-2009 23:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'trunc(sysdate+1)+23/24');
  commit;
end;
/现在因为需求发生变化,要求我们22:50:00触发这个作业。我不知道interval这里应该怎么设置?

解决方案 »

  1.   

    begin 
      sys.dbms_job.submit(job => :job, 
                          what => 'recordschedule;', 
                          next_date => to_date('21-05-2009 22:50:00', 'dd-mm-yyyy hh24:mi:ss'), 
                          interval => 'trunc(sysdate+1)+23/24'); 
      commit; 
    end; 
    / interval是你每隔多长时间执行一次,如果间隔时间不变,interval不需要修改的
      

  2.   

    减少10分钟即可:begin 
      sys.dbms_job.submit(job => :job, 
                          what => 'recordschedule;', 
                          next_date => to_date('21-05-2009 23:00:00', 'dd-mm-yyyy hh24:mi:ss'), 
                          interval => 'trunc(sysdate+1)+23/24-10/24/60'); 
      commit; 
    end; 

      

  3.   


    trunc(sysdate+1)+23/24-10/24/60') 改成 trunc(sysdate)+1+23/24'
    ==================================================================
    Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系
    联系方式QQ:370140387
    QQ群:  85837884(注明:数据库)
    电子邮件:[email protected]
    网站: http://www.inthirties.com