首页 文章

将作业添加到调度程序以每天自动调用该作业

提问于
浏览
0

我创建了一个每天09:00:00运行的工作 .

以下是我用来创建工作的片段:

BEGIN
            Dbms_Scheduler.create_job(
                job_name   => 'PROECSS_STATE_ARCH'
               ,job_type   => 'STORED_PROCEDURE' 
               ,job_action   => 'TEST' -- Procedure Name
               ,start_date   => SYSDATE 9:00:00
               ,repeat_interval => 'freq=DAILY'
               ,enabled   => TRUE
               ,comments   => 'job schedule for archiving process_state');
END;

唯一的目的是每天09:00:00运行存储过程'TEST'

如何将此作业添加到调度程序以在每天自动调用此作业?谁能告诉我?

1 回答

  • 0

    您也需要指定 byhour 以便每天晚上9点运行作业 .

    BEGIN
                Dbms_Scheduler.create_job(
                    job_name   => 'PROECSS_STATE_ARCH'
                   ,job_type   => 'STORED_PROCEDURE' 
                   ,job_action   => 'TEST' -- Procedure Name
                   ,start_date   => SYSDATE
                   ,repeat_interval => 'freq=DAILY; byhour=9' --Added byhour
                   ,enabled   => TRUE
                   ,comments   => 'job schedule for archiving process_state');
    END; 
    /
    

    要在您的方案上运行此方法,您需要 CREATE JOB 权限 . 否则,您需要在任何其他特权用户上运行此操作 . 在这种情况下,将job_action指定为,

    job_action   => '<SCHEMA_NAME>.TEST'
    

    要编辑作业,您在DBMS_SCHEDULER包中有SET_ATTRIBUTE过程 .

    例如:-

    BEGIN
         DBMS_SCHEDULER.SET_ATTRIBUTE (
              name => 'PROECSS_STATE_ARCH',
              attribute => 'repeat_interval',
              value => 'freq=DAILY; byhour=10' --Everyday by 10 AM.
              ); 
    END;
    

相关问题