2014-10-02 99 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