使用pl/sql developer建的一个job,可以手动运行它,但是自动运行有问题,在其属性里可以看到:
------------------------------
LAST_DATE 2003-6-28 1:15:56
LAST_SEC 01:15:56
NEXT_DATE 2003-6-28 1:30:56
NEXT_SEC 01:30:56
TOTAL_TIME 839
BROKEN N
INTERVAL SYSDATE +1/96
FAILURES 0
WHAT P_CBFX_cbdata_auto('11');
NLS_ENV NLS_LANGUAGE='SIMPLIFIED CHINESE' NLS_TERRITORY='CHINA' NLS_CURRENCY='RMB' NLS_ISO_CURRENCY='CHINA' NLS_NUMERIC_CHARACTERS='.,' NLS_DATE_FORMAT='DD-MON-YY' NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE' NLS_SORT='BINARY'
----------------------------
但是到点了却没有执行,以下是该job的SQLbegin
  sys.dbms_job.submit(job => :job,
                      what => 'P_CBFX_cbdata_auto(''11'');',
                      next_date => to_date('28-06-2003 01:27:22', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'SYSDATE +1/96');
  commit;
end;
/无法自动运行是否跟'P_CBFX_cbdata_auto()运行的时间有关?P_CBFX_cbdata_auto()执行了一次有839秒。麻烦高手给出一些可能会导致无法自动运行的原因。
另:如何让job整点运行,每隔15分钟一次。

解决方案 »

  1.   

    引自csdn内的一位兄弟,供参考:
    主题: 如何写根据时间执行JOB?
    假设有一个存储过程p_test,每20分钟执行一次
    1、把init<sid>.ora中如下两个参数打开
     JOB_QUEUE_INTERVAL=60
     JOB_QUEUE_PROCESSES=4
     然后重启一个库,如果原来已经打开了则不用这步了
    2、示例,以下由sqlplus 来执行,具体参照一下相关的文档
     VARIABLE jobno number;
     BEGIN
       DBMS_JOB.SUBMIT(:jobno,
         'p_test;'
         SYSDATE,'SYSDATE + 1/72');
       commit;
     END;
      

  2.   

    interval => 'SYSDATE +1/96')
    是否是时间设定的问题。
      

  3.   

    SYSDATE+1/96写法没有问题
    1)检查一下INIT中文件的那两个参数。
    2)检查一下当前ORACLE的DB时间,select to_char(sysdate,'yyyymmdd hh23:mi:ss') from dual;是否正常
    3) 修改一下当前的执行时间点execute dbms_job.submit(:no1,'xxx',sysdate,'sysdate+1/96); commit;
      

  4.   

    系统已有一个job可以正常运行,它的属性是这样的:---------------------------
    SCHEMA_USER LGSC
    LAST_DATE 2003-6-28 10:23:51
    LAST_SEC 10:23:51
    NEXT_DATE 2003-6-29 2:00:00
    NEXT_SEC 02:00:00
    TOTAL_TIME 3820
    BROKEN N
    INTERVAL TRUNC(SYSDATE+1)+1/12
    FAILURES 0
    WHAT P_ONE_DAY_RUN(SYSDATE);
    NLS_ENV NLS_LANGUAGE='SIMPLIFIED CHINESE' NLS_TERRITORY='CHINA' NLS_CURRENCY='RMB' NLS_ISO_CURRENCY='CHINA' NLS_NUMERIC_CHARACTERS='.,' NLS_DATE_FORMAT='DD-MON-RR' NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE' NLS_SORT='BINARY'
    MISC_ENV 0102000200000000
    ---------------------------begin
      sys.dbms_job.submit(job => :job,
                          what => 'P_ONE_DAY_RUN(SYSDATE);',
                          next_date => to_date('29-06-2003 02:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'TRUNC(SYSDATE+1)+1/12');
      commit;
    end;
    /
    .............................................
    系统时间是正常的
      

  5.   

    跟DBLink有什么关系吗?数据库确实用到了,但DBLink并不一定用在了此Job的内容中
      

  6.   

    1 job_queue_processes 是否为0
      select value from v$parameter where name='job_queue_processes';
    2 最好用execute dbms_job.run(job);手动运行一下