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