Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB Esempio

Il requisito è creare un lavoro in Oracle da eseguire ogni giorno alle 3:00 AM ed eseguire una procedura memorizzata per eseguire una determinata attività. Ad esempio, il nome della procedura memorizzata è PROC_DAILY_UPDATES .

Per ottenere ciò, l'esempio seguente utilizza DBMS_SCHEDULER.CREATE_JOB di Oracle procedura:

1. Crea un lavoro in Oracle utilizzando 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;
/

Dopo aver creato il lavoro sopra, abilitalo:

2. Abilita il lavoro utilizzando DBMS_SCHEDULER.ENABLE

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

Per confermare il lavoro creato con successo utilizzare la seguente query:

Select * from user_scheduler_jobs 
 where job_name = 'JOB_DAILY_UPDATES';

Dalla query precedente otterrai informazioni come ultima data di inizio, data di esecuzione successiva e stato di attivazione del lavoro , ecc.

Per ottenere la cronologia di esecuzione del lavoro, utilizzare la seguente query:

Select * from user_scheduler_job_run_details 
  where job_name = 'JOB_DAILY_UPDATES';

Puoi anche notare che nel DBMS_SCHEDULER.CREATE_JOB sopra esempio di procedura, ho usato il fuso orario America/New_York . Puoi ottenere il fuso orario di un paese specifico utilizzando la seguente query:

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

Uscita

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
...

Vedi anche:

  • Come pianificare un lavoro in Oracle SQL Developer?
  • Scopri come pianificare attività/lavori con Cron (crontab) in Linux
  • Ottieni l'ora locale corrente di qualsiasi paese in PL/SQL