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