2015-09-08 3 views
1

У меня есть несколько расписаний, и я хочу предоставить их все в repeat_interval задания. Однако я не могу найти способ сделать это - документация Oracle говорит, что это возможно, но я не могу найти примеров. Любая помощь приветствуется. Это то, что я пытался, но он не работает:DBMS_SCHEDULER Как предоставить несколько расписаний repeat_interval задания?

ORA-06512: в строке 2 27418. 00000 - «ошибка синтаксиса в интервал повторения или календарь»

* Причина: интервал повтора или определение календаря не было признано действительным синтаксисом.

begin 
    dbms_scheduler.create_schedule('SCHED1', 
      repeat_interval => 'FREQ=DAILY;BYHOUR=9;BYMINUTE=55'); 
    dbms_scheduler.create_schedule('SCHED2', 
      repeat_interval => 'FREQ=DAILY;BYHOUR=15;BYMINUTE=15'); 
    DBMS_SCHEDULER.CREATE_JOB(
      JOB_NAME   => 'SCHED_TEST_JOB', 
      JOB_TYPE   => 'STORED_PROCEDURE', 
      JOB_ACTION   => 'SCHED_TEST_JOB_PROCEDURE', 
      START_DATE   => SYSDATE, 
      REPEAT_INTERVAL => 'FREQ=SCHED1,SCHED2;', 
      AUTO_DROP   => FALSE, 
      ENABLED   => FALSE); 
end; 
/

ответ

0

Я думаю, что у вас есть избыток точка с запятой на конце вашего интервала create_job повтора.

syntax является:

combined_schedule = schedule_list [";" include_clause][";" exclude_clause] [";" intersect_clause] 

... где schedule_list является:

0

Вы хотите объединить графикам так:

SQL> BEGIN 
    2 dbms_scheduler.create_schedule('sched1', 
    3   repeat_interval => 'FREQ=YEARLY; 
    4        BYDATE=0130,0220,0725'); 
    5 dbms_scheduler.create_schedule('sched2', 
    6   repeat_interval => 'FREQ=MONTHLY; 
    7        INTERVAL=2; 
    8        BYMONTHDAY=15; 
    9        BYHOUR=9,17; 
10        INCLUDE=sched1'); 
11 END; 
12/

PL/SQL procedure successfully completed. 

SQL> BEGIN 
    2 DBMS_SCHEDULER.create_job (
    3  job_name  => 'test_sched_job_definition', 
    4  schedule_name => 'sched2', 
    5  job_type  => 'PLSQL_BLOCK', 
    6  job_action => 'BEGIN DBMS_STATS.gather_schema_stats(''SCOTT''); END;', 
    7  enabled  => TRUE, 
    8  comments  => 'Job defined by existing schedule and inline program.'); 
    9 END; 
10/

PL/SQL procedure successfully completed.