如下:
DECLARE
            X NUMBER;
         BEGIN
            SYS.DBMS_JOB.SUBMIT
            ( job => X
               ,what => 'myproc;'
               ,next_date => to_date('09-12-2011 11:10:00','dd/mm/yyyy hh24:mi:ss')
               ,interval => 'sysdate+2/1440'
               ,no_parse => FALSE
            );
                SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
               COMMIT;
         END;
结果:
5 2011-12-9 11:18:14 AAAHZmAABAAAMY1AAE
6 2011-12-9 11:20:18 AAAHZmAABAAAMY1AAF
1 2011-12-9 11:22:22 AAAHZmAABAAAMY1AAA
2 2011-12-9 11:24:26 AAAHZmAABAAAMY1AAB
3 2011-12-9 11:26:30 AAAHZmAABAAAMY1AAC
4 2011-12-9 11:28:34 AAAHZmAABAAAMY1AAD
7 2011-12-9 11:30:38 AAAHZmAABAAAMY1AAG
8 2011-12-9 11:32:42 AAAHZmAABAAAMY1AAH
9 2011-12-9 11:34:46 AAAHZmAABAAAMY1AAI
10 2011-12-9 11:36:50 AAAHZmAABAAAMY1AAJ
11 2011-12-9 11:38:54 AAAHZmAABAAAMY1AAK
12 2011-12-9 11:40:58 AAAHZmAABAAAMY1AAL
13 2011-12-9 11:43:02 AAAHZmAABAAAMY1AAM40分直接跳到43分了,每次执行JOB都晚了几秒。
如果我隔一小时执行一次,很多天以后是不是执行时间也会变啊,这个很担心。
求高手解答,有没有办法。

解决方案 »

  1.   

    job 执行过程要执行里面的储存过程,这个可能是时间延后的原因,但是如果每个一个小时的话,影响应该不会太大。
      

  2.   

    job本身内部执行需要时间的,每次执行延后是很正常的。
      

  3.   

    没有指定确定时间的,作业的计算都是推算下一次的执行时间。interval设置为:trunc(sysdate) + 1 + 9/24,每天上午9点执行。