我需要计划从0600到1800开始的作业。该作业应每两个小时运行一次。例如0800、1000、1200、1400、1600、1800。

到目前为止,这是我设法执行的代码:

DECLARE
     l_id binary_integer;
     begin
       sys.dbms_job.submit(job => l_id, what => 'integration_export;', interval => 'TRUNC(SYSDATE,''hh24'')+0/24/60');
       sys.dbms_output.put_line(l_id);
end;

当然,这将每2小时运行一次作业,而不会在1801-0759处停止。我如何添加此限制?
但是,我要做的一件事是创建另一个计划过程,该过程在1801唤醒并更改此作业的NEXT_DATE。但是,我想知道这是否是一个好主意。

有什么建议?

提前致谢 :-)

最佳答案

dbms_job很旧。我建议您使用dbms_scheduler(在Oracle 10g中引入)代替。

dbms_scheduler.create_job(job_name        => 'YOUR_JOB',
                          job_type        => 'PLSQL_BLOCK',
                          job_action      => 'integration_export;',
                          start_date      => systimestamp,
                          repeat_interval => 'freq=hourly; byhour=8,10,12,14,16,18; byminute=0; bysecond=0;',
                      enabled         => true,
                      auto_drop       => false,
                      comments        => 'some comment about the job');

关于oracle - 每天安排几个小时的工作安排,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14337075/

10-11 06:43