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

Esempio di lavoro DBMS_SCHEDULER eseguito ogni ora

Questo esempio mostra come creare un lavoro in Oracle da eseguire ogni ora utilizzando DBMS_SCHEDULER pacchetto.

1. Crea un lavoro utilizzando DBMS_SCHEDULER.CREATE_JOB

Il codice PL/SQL seguente pianificherà un processo che inizierà il 20 ottobre 2019 all'01:00 ora indiana per l'esecuzione ogni ora ogni giorno. Puoi rimuovere il nome del giorno dal parametro dell'intervallo di ripetizione per escludere un giorno particolare . Il tipo di lavoro è una procedura memorizzata ed eseguirà la procedura specificata nel parametro Azione lavoro.

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. Abilita il lavoro

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

Il tuo DBMS_SCHEDULER orario il lavoro è stato creato e abilitato ora. Puoi modificare il fuso orario da "Asia/Kolkata " a qualsiasi fuso orario nazionale ottenendo il valore dalla seguente query:

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

Esercitazioni correlate:

  • Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB eseguito ogni giorno una volta