首页 文章

DBMS_SCHEDULER JOBS每天早上跑到晚上

提问于
浏览
1

我想让JOBS在oracle 10g中使用DBMS_SCHEDULER,其中作业每分钟刷新一次,每天运行间隔为2分钟,从早上8点开始,到晚上8点结束 . 我试过这段代码,

BEGIN
  SYS.DBMS_SCHEDULER.CREATE_JOB
    (
       job_name        => 'UPDATE_REKAP_BALI'
      ,start_date      => trunc(sysdate) + 8/24
      ,repeat_interval => 'freq=MINUTELY;interval=2'
      ,end_date        => trunc(sysdate) + 20/24
      ,job_class       => 'DEFAULT_JOB_CLASS'
      ,job_type        => 'STORED_PROCEDURE'
      ,job_action      => 'UPDATEREKAPBALI'
      ,comments        => NULL
    );
END

但是,当我第二天检查时,工作没有运行,我猜这些工作在第二天的08.00 AM再也没有运行 .

3 回答

  • 0

    确保在提交作业后提交 .

    Edit 这是不正确的:DBMS_SCHEDULER执行隐式提交,与之前需要显式提交的DBMS_JOB不同 .

  • 0

    您必须将 auto_drop 设为 false ,因为自动删除会使作业在运行后被删除一次,因此将其设为false

    BEGIN
        DBMS_SCHEDULER.CREATE_JOB (
        job_name        => 'TEST_J',
        job_type        => 'CHAIN',
        job_action      => 'TEST_C',
        auto_drop       => FALSE,
        repeat_interval => 'FREQ=DAILY;BYHOUR=08,09,10,11,12,13,14,15,16,17,18,19;BYMINUTE=02,04,06,08,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,00;BYSECOND=00;',
        enabled         => TRUE);
    
    END;
    /
    

    默认情况下启用自动删除http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_sched.htm#i1000363

  • 0

    答案是远远的两个环节

相关问题