L'exigence est de créer un travail dans Oracle pour s'exécuter quotidiennement à 3h00 et exécuter une procédure stockée pour effectuer une certaine tâche. Par exemple, le nom de la procédure stockée est PROC_DAILY_UPDATES
.
Pour ce faire, l'exemple suivant utilise le DBMS_SCHEDULER.CREATE_JOB
d'Oracle procédure :
1. Créer une tâche dans Oracle à l'aide de 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; /
Après avoir créé la tâche ci-dessus, activez-la :
2. Activez le travail à l'aide de DBMS_SCHEDULER.ENABLE
BEGIN DBMS_SCHEDULER.enable('JOB_DAILY_UPDATES'); END; /
Pour confirmer que le travail a été créé avec succès, utilisez la requête suivante :
Select * from user_scheduler_jobs where job_name = 'JOB_DAILY_UPDATES';
À partir de la requête ci-dessus, vous obtiendrez des informations telles que la date du dernier début, la date de la prochaine exécution et le statut d'activation du travail , etc.
Pour obtenir l'historique d'exécution des tâches, utilisez la requête suivante :
Select * from user_scheduler_job_run_details where job_name = 'JOB_DAILY_UPDATES';
Vous pouvez également remarquer que dans le DBMS_SCHEDULER.CREATE_JOB
ci-dessus exemple de procédure, j'ai utilisé le fuseau horaire America/New_York
. Vous pouvez obtenir le fuseau horaire d'un pays spécifique à l'aide de la requête suivante :
SELECT DISTINCT tzname, TZ_OFFSET (tzname) FROM V$TIMEZONE_NAMES ORDER BY tzname;
Sortie
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 ...
Voir aussi :
- Comment planifier une tâche dans Oracle SQL Developer ?
- Apprenez à planifier des tâches/tâches avec Cron (crontab) sous Linux
- Obtenir l'heure locale actuelle de n'importe quel pays en PL/SQL