【问题标题】:How to limit oracle job interval for a particular day ,(Monday)?如何限制特定日期(星期一)的 oracle 作业间隔?
【发布时间】:2015-07-10 12:40:14
【问题描述】:

您好,我必须显示一份报告,并且报告数据应该在每个星期一刷新。 自动地 我已经检查了 oracle scheduler 。我看不到任何将时间间隔限制为星期一的选项 . 我正在考虑将开始日期定为星期一并重复 7 天间隔。 好方法吗

【问题讨论】:

  • 第一次纠正工作,所以我怎么能纠正它听到我分享我的想法。那里
  • 我在 oracle 作业的堆栈溢出中没有找到相同的问题
  • @davegreen 为什么你降级了这个问题..

标签: oracle scheduler jobs


【解决方案1】:

您好,我得到了答案。 你想正确地喜欢下面的代码。 有 3 种方法可以在每个工作日安排工作,可以是每个星期一或另一天 在这里,我尝试在每个星期一早上 6 点自动运行作业

我们必须设置频率 我们可以使用以下任一代码

FREQ=DAILY; BYDAY=MON; BYHOUR=6; BYMINUTE=0; BYSECOND=0;
FREQ=WEEKLY; BYDAY=MON; BYHOUR=6; BYMINUTE=0; BYSECOND=0;
FREQ=YEARLY; BYDAY=MON; BYHOUR=6; BYMINUTE=0; BYSECOND=0;


begin
    dbms_scheduler.create_job(
    job_name           =>      'JOB_TEST',
    job_type           =>      'PLSQL_BLOCK',
    job_action         =>      'begin PROCEDURE_NAME; end;',
    start_date         =>       systimestamp,
    end_date           =>       null,
    comments           =>      'job is created for running automatically on every monday',
    enabled            =>      true,
    repeat_interval    =>      'FREQ=WEEKLY; BYDAY=MON; BYHOUR=0; BYMINUTE=0; BYSECOND=0;');
    end;

在 oracle 中我们可以使用 DBMS Scheduler 或 DBMS JOBS 编写作业 DBMS 调度器是上面的例子,它是高级的例子, 如果您想使用 DMBS JOBS 解决同样的问题

    begin
      sys.dbms_job.submit(job => :job,
                          what => 'procedure name;',
                          next_date =>  NEXT_DAY(TRUNC(SYSDATE),'MONDAY'),
                        interval  => 'NEXT_DAY(TRUNC(SYSDATE),''MONDAY'')');
  commit;
end;
    /

【讨论】:

    猜你喜欢
    • 2022-10-14
    • 1970-01-01
    • 2015-09-11
    • 2020-03-10
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2020-09-10
    相关资源
    最近更新 更多