2015-07-10 63 views
-1

嗨,我必须显示一个报告,并在每个星期一刷新报告数据。 自动 我检查了oracle调度程序。我不能看到任何选项限制间隔至星期一 。 我正在考虑给星期一开始日期,并重复7天的时间间隔。 是不错的方式如何限制特定日期(星期一)的oracle作业时间间隔?

+0

第一次正在找工作,所以我怎么能听到我分享我的想法。有 – Lijo

+0

我没有找到相同的问题在oracle作业的堆栈溢出 – Lijo

+0

@davegreen为什么你降级了这个问题.. – Lijo

回答

0

嗨,我得到了答案。 你想正确的像下面的代码。 有对每周日周一早上6点

调度作业也可以是每星期一或我已经尝试了在每个自动运行该作业 另一天在这里3路我们要设定的频率 任一下面的代码,我们可以使用DBMS调度程序或DBMS JOBS DBMS调度器上面的例子,其先进的一个, 使用

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中我们可以编写作业如果你想要做同样的问题,使用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; 
    /