Oracle
 sql >> Base de données >  >> RDS >> Oracle

Exemple d'exécution de tâche DBMS_SCHEDULER toutes les heures

Cet exemple vous montre comment créer un travail dans Oracle pour qu'il s'exécute toutes les heures à l'aide de DBMS_SCHEDULER paquet.

1. Créer une tâche à l'aide de DBMS_SCHEDULER.CREATE_JOB

Le code PL/SQL suivant planifiera une tâche qui débutera le 20 octobre 2019 à 1 h 00, heure de l'Inde, pour s'exécuter toutes les heures tous les jours. Vous pouvez supprimer le nom du jour du paramètre d'intervalle de répétition pour exclure un jour particulier . Le type de travail est une procédure stockée et exécutera la procédure spécifiée dans le paramètre d'action de travail.

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. Activer la tâche

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

Votre DBMS_SCHEDULER horaire le travail est créé et activé maintenant. Vous pouvez changer le fuseau horaire de "Asia/Kolkata " au fuseau horaire de n'importe quel pays en obtenant la valeur de la requête suivante :

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

Tutoriels associés :

  • Oracle PL/SQL :DBMS_SCHEDULER.CREATE_JOB exécuté une fois par jour