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

Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB Ejemplo

El requisito es crear un trabajo en Oracle para que se ejecute diariamente a las 3:00 a. m. y ejecutar un procedimiento almacenado para realizar una determinada tarea. Por ejemplo, el nombre del procedimiento almacenado es PROC_DAILY_UPDATES .

Para lograr esto, el siguiente ejemplo utiliza DBMS_SCHEDULER.CREATE_JOB de Oracle procedimiento:

1. Cree un Trabajo en Oracle usando DBMS_SCHEDULER.CREATE_JOB

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
   job_name           =>  'JOB_DAILY_UPDATES',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'YOURSCHEMA.PROC_DAILY_UPDATES',
   start_date         =>  '28-SEP-19 03.00.00 AM America/New_York',
   repeat_interval    =>  'FREQ=DAILY;INTERVAL=1', 
   end_date           =>  NULL,
   auto_drop          =>   FALSE,
   job_class          =>  'SYS.DEFAULT_JOB_CLASS',
   comments           =>  'extract data');
END;
/

Después de crear el trabajo anterior, habilítelo:

2. Habilite el trabajo usando DBMS_SCHEDULER.ENABLE

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

Para confirmar que el trabajo se creó correctamente, use la siguiente consulta:

Select * from user_scheduler_jobs 
 where job_name = 'JOB_DAILY_UPDATES';

De la consulta anterior, obtendrá información como última fecha de inicio, próxima fecha de ejecución y estado de habilitación del trabajo , etc.

Para obtener el historial de ejecución del trabajo, use la siguiente consulta:

Select * from user_scheduler_job_run_details 
  where job_name = 'JOB_DAILY_UPDATES';

También puede notar que en el DBMS_SCHEDULER.CREATE_JOB anterior ejemplo de procedimiento, utilicé la zona horaria America/New_York . Puede obtener la zona horaria de un país específico utilizando la siguiente consulta:

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

Salida

America/Mexico_City -05:00 
America/Miquelon -02:00 
America/Moncton -03:00 
America/Monterrey -05:00 
America/Montevideo -03:00 
America/Montreal -04:00 
America/Montserrat -04:00 
America/Nassau -04:00 
America/New_York -04:00
...

Véase también:

  • ¿Cómo programar un trabajo en Oracle SQL Developer?
  • Aprenda a programar tareas/trabajos con Cron (crontab) en Linux
  • Obtener la hora local actual de cualquier país en PL/SQL