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