2016-05-31 82 views

回答

2

查詢作業是否使用運行:

select owner , job_name , running_instance, session_id from all_scheduler_running_jobs 
order by owner , job_name 

,改變你的時間間隔:

FREQ=DAILY;BYHOUR=8,12;BYMINUTE=0,30;BYSETPOS=1,4 

SETPOS作品在下面的方法:

╔═══╦══════╦════════╗ 
║ P ║ Hour ║ Minute ║ 
╠═══╬══════╬════════╣ 
║ 1 ║ 8 ║  00 ║ 
║ 2 ║ 8 ║  30 ║ 
║ 3 ║ 12 ║  00 ║ 
║ 4 ║ 12 ║  30 ║ 
╚═══╩══════╩════════╝ 
+0

這將導致作業每天運行,4每天的時間:上午8點,上午8點30分,下午12點和下午12點30分,這聽起來不像是OP想要的。 –

+0

@KrisJohnston謝謝你的評論!你是對的。我忘記包括'BYSETPOS = 1,4' – dcieslak

+0

有趣...我不知道你可以分配職位給byhour,byminute等...我想唯一的方法是多個時間表(如在我的答案中) 。我必須記住這一點。 –

1

如果嘗試通過以下方式進行:FREQ=DAILY;BYHOUR=8,12;BYMINUTE=0,30;BYSECOND=0,您的工作將每天執行,每天執行4次(上午8點,上午8點30分,下午12點, nd 12:30 PM),這聽起來不像你想要的。

我認爲要做到這一點的唯一方法是創建兩個時間表:

begin 
    dbms_scheduler.create_schedule (
    schedule_name => 'EIGHT_AM', 
    repeat_interval => 'FREQ=DAILY;BYHOUR=8;BYMINUTE=0;BYSECOND=0'); 

    dbms_scheduler.create_schedule (
    schedule_name => 'TWELVE_THIRTY_PM', 
    repeat_interval => 'FREQ=DAILY;BYHOUR=12;BYMINUTE=30;BYSECOND=0'); 
end; 

然後,兩個調度分配給調度工作:

exec dbms_scheduler.set_attribute('SCHEMA.MYJOB','REPEAT_INTERVAL','EIGHT_AM,TWELVE_THIRTY_PM'); 
相關問題