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”

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

4

1 回答 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;
于 2014-03-10T10:05:50.650 回答