Oracle数据库作业调度程序



我想创建一个计划作业,该作业将在每月的第一天进行。

以下是我每月第一天手动运行的作业:

his_proc_mduniverse.md_proc_universe(v_date1, v_date2)

示例:

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

考虑到我需要每个月填写开始和结束日期,我如何通过工作时间表来实现这一点?

您可以为此任务创建作业:

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;
/

编辑:要在指定时间(例如,凌晨5点)运行,请将repeat_interval更改为:

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

文档:

  • 使用计划程序
  • CREATE_JOB程序
  • TRUNC(日期)
  • LAST_DAY(日期)

最新更新