Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Exemplo de execução de trabalho a cada hora DBMS_SCHEDULER


Este exemplo mostra como criar um trabalho no Oracle para ser executado a cada hora usando o DBMS_SCHEDULER pacote.

1. Criar um trabalho usando DBMS_SCHEDULER.CREATE_JOB


O código PL/SQL a seguir agendará um trabalho que começará em 20 de outubro de 2019 à 1h, horário da Índia, para ser executado a cada hora em todos os dias. Você pode remover o nome do dia do parâmetro de intervalo de repetição para excluir um dia específico . O tipo de trabalho é procedimento armazenado e executará o procedimento especificado no parâmetro de ação do trabalho.
BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
   job_name           =>  'HOURLY_JOB',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'YOUR_SCHEMA.YOUR_PROCEDURE',
   start_date         =>  '20-OCT-19 01.00.00 AM Asia/Kolkata',
   repeat_interval    =>  'FREQ=HOURLY;BYDAY=MON,TUE,WED,THU,FRI,SAT,SUN', 
   end_date           =>  NULL,
   auto_drop          =>   FALSE,
   job_class          =>  'SYS.DEFAULT_JOB_CLASS',
   comments           =>  'run job every hour');
END;
/

2. Ativar o trabalho

BEGIN 
    DBMS_SCHEDULER.enable('HOURLY_JOB'); 
END;
/

Seu DBMS_SCHEDULER por hora trabalho é criado e habilitado agora. Você pode alterar o fuso horário de "Ásia/Kolkata " para qualquer fuso horário do país obtendo o valor da seguinte consulta:
SELECT DISTINCT tzname, TZ_OFFSET (tzname)
 FROM V$TIMEZONE_NAMES
ORDER BY tzname;

Tutoriais relacionados:

  • Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB Executar todos os dias uma vez