Oracle DBMS_Scheduler 每天上午 9:10 和 11:30 运行 DBMS_JOB

Posted

技术标签:

【中文标题】Oracle DBMS_Scheduler 每天上午 9:10 和 11:30 运行 DBMS_JOB【英文标题】:Oracle DBMS_Scheduler RUN DBMS_JOB on 9:10AM and 11:30 AM Daily 【发布时间】:2021-10-21 12:43:26 【问题描述】:

我想安排一个作业,应该在每个星期六上午 9:10 和 11:45 运行。

我正在尝试创建一个具有以下间隔的工作dbms_scheduler.create_job

,repeat_interval => 'FREQ=WEEKLY; BYDAY=THU; BYHOUR=9,11; BYMINUTE=10,45; BYSECOND=0'

但看起来它创造了 4 个工作,这些工作将在每周四的 9 和 11 小时 30 和 45 分钟运行。

有没有办法创建作业间隔,在每个星期六的 9:10 和 11:45 运行作业?

【问题讨论】:

【参考方案1】:

创建两个计划。

BEGIN
  dbms_scheduler.create_schedule (
    schedule_name   => 'SCHEDULE_9', 
    repeat_interval => 'FREQ=WEEKLY; BYDAY=SAT; BYHOUR=9;  BYMINUTE=10; BYSECOND=00;');
  dbms_scheduler.create_schedule (
    schedule_name   => 'SCHEDULE_11', 
    repeat_interval => 'FREQ=WEEKLY; BYDAY=SAT; BYHOUR=11; BYMINUTE=45; BYSECOND=00;'); 
  dbms_scheduler.create_job (
    job_name        => 'MY_JOB',
    job_type        => 'STORED_PROCEDURE',
    job_action      => 'MY_PROCEDURE',
    start_date      => systimestamp,
    repeat_interval => 'SCHEDULE_9,SCHEDULE_11',
    end_date        => NULL,
    enabled         => TRUE,
    comments        => 'Job that runs at 09:10 and 11:45 every Saturday ');
END;
/

【讨论】:

是的,正确的,我想也许除了创建 2 个差异之外还有其他选择。时间表,,,但看起来这是唯一的选择......谢谢

以上是关于Oracle DBMS_Scheduler 每天上午 9:10 和 11:30 运行 DBMS_JOB的主要内容,如果未能解决你的问题,请参考以下文章

Oracle定时任务-DBMS_SCHEDULER

如何在 Oracle 中使用 DBMS_SCHEDULER 删除文件

Oracle DBMS_SCHEDULER sysdate 参数

DBMS_SCHEDULER 下次运行日期

带有 OUT 参数调用的 Oracle DBMS_SCHEDULER.create_job

如何在Oracle中管理计划任务