Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle计划程序-重复间隔2天和时间_Oracle_Scheduler_Frequency_Jobs_Repeat - Fatal编程技术网

Oracle计划程序-重复间隔2天和时间

Oracle计划程序-重复间隔2天和时间,oracle,scheduler,frequency,jobs,repeat,Oracle,Scheduler,Frequency,Jobs,Repeat,是否可以在一个作业中创建重复间隔为2天和2次的作业? 例如,每个星期一凌晨02:00,每个星期五下午03:00 repeat_interval => 'FREQ=DAILY;BYDAY=MON; byhour=02; byminute=00; bysecond=00', repeat_interval => 'FREQ=DAILY;BYDAY=FRI; b

是否可以在一个作业中创建重复间隔为2天和2次的作业? 例如,每个星期一凌晨02:00,每个星期五下午03:00

repeat_interval      =>  'FREQ=DAILY;BYDAY=MON;
                          byhour=02; byminute=00; bysecond=00',

repeat_interval      =>  'FREQ=DAILY;BYDAY=FRI;
                          byhour=15; byminute=00; bysecond=00',
这些频率,但在一个作业重复间隔内


谢谢

为其中一个间隔创建一个命名计划,并使用INCLUDE like

编辑版本: 因为
INCLUDE
不支持
byminute,byhour
。所以我这样修改了它,我所做的,将第一项工作描述为dayly,在每个星期五启动,但添加了开始时间戳,并指出了时间。所以它在每个星期五的那个时候重复,然后把它包括在第二份工作中

declare
   ts timestamp := to_timestamp_tz('28/04/2017 09:00:00',
                                   'DD/MM/YYYY HH24:MI:SS');
begin

   dbms_scheduler.create_schedule('FRIDAY_SCHED', start_date => ts,
                                  repeat_interval => 'FREQ=DAILY;BYDAY=FRI;');
   dbms_scheduler.create_schedule('ALL_SCHED',
                                  repeat_interval => 'FREQ=DAILY;BYDAY=MON; byhour=02; byminute=00; bysecond=00;INCLUDE=FRIDAY_SCHED');
end;
可以用这种方法测试周期

declare
   start_date timestamp;
   return_date_after timestamp;
   next_run_date timestamp;
begin
   start_date := to_timestamp_tz('28/04/2017 09:00:00',
                                   'DD/MM/YYYY HH24:MI:SS');
   return_date_after := start_date;
   for i in 1 .. 5 loop
      DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING('FREQ=DAILY;BYDAY=FRI;',
                                              start_date, return_date_after,
                                              next_run_date);
      DBMS_OUTPUT.PUT_LINE('next_run_date: ' || next_run_date);
      return_date_after := next_run_date;
   end loop;
end;

它不起作用。2742200000-“在嵌入式日历应用程序\%s\\%s\\*中不支持使用%s原因:主日历定义在INCLUDE、EXCLUDE、INTERSECT或FREQ子句中使用了嵌入式日历,对其应用了额外的限制*操作:从日历定义中删除特定子句。