как настроить работу оракула для запуска в каждую минуту 00 секунды - PullRequest
0 голосов
/ 10 мая 2019

Я хочу создать задание в oracle, которое выполняется каждую минуту в 00 секунд, например, 01:00 (MI: SS), 02:00 и 03:00 ...

Я создал работу, как показано ниже

begin
  sys.dbms_job.submit(job => :job,
                      what => 'RECONUAT.USP_LOCK_APP_AFTER_EODTIME;',
                      next_date => to_date('10-05-2019 17:17:32', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'SYSDATE+1/1440'); 
  commit; 
end; 
/

Он также работает каждую минуту, но секунды меняются, например, 01:00, 02:16, 03:32 ...

Мое требование - запускать задание каждую минуту 00 секунд. Пожалуйста, предложите.

1 Ответ

2 голосов
/ 10 мая 2019

sys.dbms_job.submit устарело, предпочтительнее использовать sys.dbms_scheduler.create_job в качестве

declare
    v_job_name varchar2(32) := 'JB_LOCK_APP_AFTER_EODTIME';
begin  
    sys.dbms_scheduler.create_job(
        job_name => v_job_name,
        job_type => 'STORED_PROCEDURE',
        job_action => 'RECONUAT.USP_LOCK_APP_AFTER_EODTIME', 
        start_date => to_date('10-05-2019 15:00:00', 'dd-mm-yyyy hh24:mi:ss'),
        repeat_interval => 'FREQ=MINUTELY;INTERVAL=1;BYSECOND=0;', 
        auto_drop => false,
        comments => 'Populates our table every minute');

    dbms_scheduler.enable(v_job_name);    
end;

, время начала может быть выбрано раньше текущего.Добавление параметра BYSECOND=0 к repeat_interval может помочь добиться точной минуты.

...