oracle job 功能 我要间隔时间是 在每天的23:59:15执行

解决方案 »

  1.   


    SQL> select TRUNC(SYSDATE+1)+(1440*60-45)/(1440*60) from dual;TRUNC(SYSDATE+1)+(1440*60-45)/
    ------------------------------
    2008-11-12 23:59:15SQL> 
    --- job sqlbegin
      sys.dbms_job.submit(job => :job,
                          what => 'ANWS_GIS_MONTH;',
                          next_date => to_date('11-12-2008', 'dd-mm-yyyy'),
                          interval => 'TRUNC(SYSDATE+1)+(1440*60-45)/(1440*60)');
      commit;
    end;
    /
      

  2.   

    begin
      dbms_job.submit(job       => :job,
                      what      => 'pro_name;',
                      next_date => to_date('2008-11-11 23:59:15',
                                           'yyyy-mm-dd hh24:mi:ss'),
                      interval  => 'sysdate+1');
    end;
    /
      

  3.   

    如果不需要考虑累积误差的,可以用这个
    否则就要用
    trunc(sysdate)+2-45/86400
      

  4.   


    linzhangs的方式不会每天准时在23:59:15执行的.
      

  5.   

    begin
      dbms_job.submit(job       => :job,
                      what      => 'pro_name;',
                      next_date => to_date('2008-11-11 23:59:15',
                                           'yyyy-mm-dd hh24:mi:ss'),
                      interval  => 'trunc(sysdate+1)-(45/(24*60*60))+1');
    end;
    /