2014-10-02 90 views
0

我想創建一個計劃作業,該作業將在每個月的第1天。Oracle DB作業計劃程序

下面是我手動運行在每月的第一天工作:

his_proc_mduniverse.md_proc_universe(v_date1, v_date2) 

例子:

his_proc_mduniverse.md_proc_universe('01-JAN-2014' , '31-JAN-2014') 

既然我每個月需要填充的起始日期和結束日期,如何我可以通過工作時間表來實現嗎?

回答

0

您可以爲這項任務工作:

BEGIN 
DBMS_SCHEDULER.CREATE_JOB (
    job_name  => 'my_new_job1', 
    job_type  => 'plsql_block', 
    job_action  => 'BEGIN his_proc_mduniverse.md_proc_universe(TRUNC(SYSDATE, ''month''), TRUNC(LAST_DAY(SYSDATE))); END;', 
    repeat_interval => 'FREQ=MONTHLY;BYMONTHDAY=1', 
    enabled   => TRUE, 
    auto_drop  => FALSE, 
    comments  => 'every 1st day of the month'); 
END; 
/

編輯:

repeat_interval => 'FREQ=MONTHLY;BYMONTHDAY=1;BYHOUR=5;BYMINUTE=0;BYSECOND=0', 

文檔:

要在指定的時間(例如5點)的變化 repeat_interval運行
+0

您好,感謝這一點。但是,我有幾個問題。所以你說這一年將會工作?另外,我可以在哪裏設置每個月的第一天每隔5點運行一次? – 2014-10-02 09:02:16

+0

這可用,直到您放棄或禁用作業。另請參閱修改後的答案,如何在每個月的第一天上午5點運行。 – Rimas 2014-10-02 09:35:46