sql >> Base de Datos >  >> RDS >> Oracle

DBMS_SCHEDULER Ejemplo de ejecución de trabajo cada hora

Este ejemplo le muestra cómo crear un trabajo en Oracle para que se ejecute cada hora usando DBMS_SCHEDULER paquete.

1. Crear un trabajo usando DBMS_SCHEDULER.CREATE_JOB

El siguiente código PL/SQL programará un trabajo que comenzará el 20 de octubre de 2019 a la 1:00 a. m., hora de India, para ejecutarse cada hora todos los días. Puede eliminar el nombre del día del parámetro de intervalo de repetición para excluir un día en particular . El tipo de trabajo es un procedimiento almacenado y ejecutará el procedimiento especificado en el parámetro de acción del trabajo.

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. Habilitar el trabajo

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

Su DBMS_SCHEDULER por hora el trabajo está creado y habilitado ahora. Puede cambiar la zona horaria de "Asia/Kolkata " a la zona horaria de cualquier país obteniendo el valor de la siguiente consulta:

SELECT DISTINCT tzname, TZ_OFFSET (tzname)
 FROM V$TIMEZONE_NAMES
ORDER BY tzname;

Tutoriales relacionados:

  • Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB Ejecutar todos los días una vez