【问题标题】:How to schedule an Oracle job 5 business days after 15th of every month?如何在每月 15 日后的 5 个工作日安排 Oracle 作业?
【发布时间】:2020-05-13 02:10:15
【问题描述】:

我只想在每月 15 日后的 5 个工作日内运行一次作业。

例如如果 15 日是星期三,则在星期三之后运行工作(跳过星期四、星期五、星期六、星期日、星期一、星期二)- 5 个工作日后。

【问题讨论】:

  • 圣诞节、新年等公共假期呢?
  • @WernfriedDomscheit 是的,宁愿不喜欢在英国公共假期做这份工作......
  • 看看stackoverflow.com/questions/41936398/…如何排除公共假期。 repeat_interval 就像'freq=monthly; byday=MON,TUE,WED,THU,FRI; bymonthday=15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31; ; EXCLUDE=NEW_YEARS_DAY,MARTIN_LUTHER_KING_DAY,WASHINGTONS_BIRTHDAY,MEMORIAL_DAY,INDEPENDENCE_DAY,CHRISTMAS_DAY,SPRING_BREAK'

标签: oracle dbms-scheduler


【解决方案1】:

假设您要运行一个名为 prc_myaction 的过程,然后考虑使用

begin
dbms_scheduler.create_job (
   job_name           =>  'job_myaction',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'prc_myaction',
   start_date         =>  systimestamp at time zone 'Europe/Istanbul',
   repeat_interval    =>  'freq=monthly; byday=MON,TUE,WED,THU,FRI; bymonthday=15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31;',
   enabled            =>  true);
end;

超出范围的日期将被忽略,例如 4 月的第 31 天。

【讨论】:

  • 也许我的问题措辞有点错误......请参阅我上面编辑的描述以获得更好的清晰度。
猜你喜欢
  • 2020-05-12
  • 2019-09-07
  • 2021-10-28
  • 1970-01-01
  • 2014-11-09
  • 2019-06-08
  • 2023-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多