dbms_job.submit(testjobid,'GET_data;',sysdate,'trunc(sysdate+1)+22/24');时间间隔设为如题即每天晚上22点执行,可是job建立时执行了一次,显示NEXT_DATE正常,可是到了第二天晚上22点,此JOB执行失败FAILURES字段为1,即失败一次,可是到了0:06分自动执行了一次而且成功执行,此时next_date显示为2:23分,到了2:23分执行一次失败,next_date又显示为9:23分,到9:23,又执行失败,。直到next_date又显示为0:06分执行成功。本人刚学JOB,搞不明白怎么回事啊,难道'trunc(sysdate)+22/24'不是每天晚上22点执行吗?怎么会执行这么多次而且仅在0:06分执行成功,还是trunc(sysdate)+22/24 是一天执行22次的意思?求告人指点阿

解决方案 »

  1.   

    SQL> select to_char(trunc(sysdate),'YYYY-MM-DD HH24:MI:SS') from dual;TO_CHAR(TRUNC(SYSDA
    -------------------
    2009-11-08 00:00:00SQL> select to_char(trunc(sysdate)+22/24,'YYYY-MM-DD HH24:MI:SS') from dual;TO_CHAR(TRUNC(SYSDA
    -------------------
    2009-11-08 22:00:00
      

  2.   

    dbms_job.submit(testjobid,'GET_data;',sysdate,'trunc(sysdate+1)+22/24'); 
    这个job是每天晚上22:00执行没错。
    有可能是job执行的GET_data过程中的一些对象失效或pl/sql程序编写错误,所导致。
    具体是什么错误,请检查GET_data中所使用的所有对象是否有效,和程序是否有编译错误。