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