如何限制特定日期(星期一)的oracle工作间隔?

时间:2015-07-10 12:40:15

标签: oracle scheduler jobs

您好我必须显示一个报告,报告数据应该在每个星期一刷新。 自动 我检查过oracle调度程序。我看不到将间隔限制在星期一的任何选项 。 我想把开始日期定为星期一,重复7天。 这是好方法

1 个答案:

答案 0 :(得分:0)

嗨,我得到了答案。 你想要像下面的代码一样正确。 每周工作日有3种方式来安排工作,可以是每个星期一或每天 在这里,我试图在每个星期一早上6点自动运行作业

我们必须设定频率 我们可以使用以下代码之一

FREQ=DAILY; BYDAY=MON; BYHOUR=6; BYMINUTE=0; BYSECOND=0;
FREQ=WEEKLY; BYDAY=MON; BYHOUR=6; BYMINUTE=0; BYSECOND=0;
FREQ=YEARLY; BYDAY=MON; BYHOUR=6; BYMINUTE=0; BYSECOND=0;


begin
    dbms_scheduler.create_job(
    job_name           =>      'JOB_TEST',
    job_type           =>      'PLSQL_BLOCK',
    job_action         =>      'begin PROCEDURE_NAME; end;',
    start_date         =>       systimestamp,
    end_date           =>       null,
    comments           =>      'job is created for running automatically on every monday',
    enabled            =>      true,
    repeat_interval    =>      'FREQ=WEEKLY; BYDAY=MON; BYHOUR=0; BYMINUTE=0; BYSECOND=0;');
    end;

在oracle中我们可以使用DBMS Scheduler或DBMS JOBS编写作业 DBMS Scheduler是上面的例子,它是高级的, 如果你想使用DMBS JOBS做同样的问题

    begin
      sys.dbms_job.submit(job => :job,
                          what => 'procedure name;',
                          next_date =>  NEXT_DAY(TRUNC(SYSDATE),'MONDAY'),
                        interval  => 'NEXT_DAY(TRUNC(SYSDATE),''MONDAY'')');
  commit;
end;
    /