Maison >base de données >Oracle >Comment configurer des tâches planifiées Oracle à exécuter régulièrement sur une certaine période de temps
Pour configurer des tâches à exécuter régulièrement dans une période de temps spécifiée dans Oracle, vous devez créer des déclencheurs et des tâches : 1. Utilisez des déclencheurs pour spécifier la période d'exécution (dates de début et de fin) et les tâches à exécuter ; Utilisez des tâches pour spécifier les déclencheurs. Le nom du serveur, la date de début d'exécution et la fréquence de récurrence.
Comment configurer des tâches à exécuter régulièrement dans une période de temps spécifiée dans Oracle
Dans la base de données Oracle, vous pouvez utiliser le package DBMS_JOB pour créer et gérer des tâches planifiées. Pour définir une tâche à exécuter régulièrement dans une certaine période de temps, veuillez suivre les étapes ci-dessous :
1 Créer un déclencheur
Utilisez l'instruction suivante pour créer un déclencheur qui exécutera la tâche spécifiée dans la période spécifiée. du temps. Bloc PL/SQL :
<code class="sql">CREATE OR REPLACE TRIGGER trigger_name BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name FOR EACH ROW BEGIN IF (SYSDATE BETWEEN start_date AND end_date) THEN -- 在此执行要执行的任务 END IF; END;</code>
où :
trigger_name
est le nom du déclencheur. trigger_name
是触发器的名称。start_date
是任务开始执行的日期和时间。end_date
是任务结束执行的日期和时间。2. 创建作业
使用以下语句创建一个作业,该作业将调用触发器:
<code class="sql">BEGIN DBMS_JOB.SUBMIT( job => job_name, next_date => start_date, interval => 'freq=(seconds=60, minutes=0, hours=0, days=0, weeks=0, months=0, years=0)', what => 'BEGIN ' || trigger_name || '; END;' ); END;</code>
其中:
job_name
是作业的名称。start_date
是作业开始执行的日期和时间。interval
指定作业执行的频率,在本例中,每 60 秒执行一次。what
start_date
est la date et l'heure auxquelles l'exécution de la tâche commence. end_date
est la date et l'heure auxquelles la tâche termine son exécution.
2. Créez un travail
🎜🎜Créez un travail qui appellera le déclencheur en utilisant l'instruction suivante : 🎜<code class="sql">CREATE OR REPLACE TRIGGER my_trigger BEFORE INSERT/UPDATE/DELETE ON my_table FOR EACH ROW BEGIN IF (SYSDATE BETWEEN TO_DATE('2023-03-08 09:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('2023-03-08 17:00:00', 'YYYY-MM-DD HH24:MI:SS')) THEN -- 在此执行要执行的任务 END IF; END; BEGIN DBMS_JOB.SUBMIT( job => my_job, next_date => TO_DATE('2023-03-08 09:00:00', 'YYYY-MM-DD HH24:MI:SS'), interval => 'freq=(seconds=0, minutes=60, hours=0, days=0, weeks=0, months=0, years=0)', what => 'BEGIN my_trigger; END;' ); END;</code>🎜où : 🎜🎜🎜
job_name
est le nom du travail. 🎜🎜start_date
est la date et l'heure auxquelles l'exécution du travail commence. 🎜🎜interval
spécifie la fréquence à laquelle la tâche doit être exécutée, dans ce cas, toutes les 60 secondes. 🎜🎜what
spécifie le bloc PL/SQL à exécuter. 🎜🎜🎜🎜Exemple🎜🎜🎜Pour créer une tâche qui s'exécute toutes les heures entre 9h et 17h tous les jours, vous pouvez utiliser le code suivant : 🎜rrreeeCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!