Um Aufgaben einzurichten, die regelmäßig innerhalb eines bestimmten Zeitraums in Oracle ausgeführt werden sollen, müssen Sie Trigger und Jobs erstellen: 1. Verwenden Sie Trigger, um den Ausführungszeitraum (Start- und Enddatum) und die auszuführenden Aufgaben anzugeben. 2. Verwenden Sie Jobs, um Auslöser anzugeben. Den Namen des Servers, das Startdatum der Ausführung und die Wiederholungshäufigkeit.
So richten Sie Aufgaben so ein, dass sie regelmäßig innerhalb eines bestimmten Zeitraums in Oracle ausgeführt werden.
In der Oracle-Datenbank können Sie das Paket DBMS_JOB verwenden, um geplante Aufgaben zu erstellen und zu verwalten. Um eine Aufgabe so festzulegen, dass sie regelmäßig innerhalb eines bestimmten Zeitraums ausgeführt wird, führen Sie bitte die folgenden Schritte aus:
1. Erstellen Sie einen Trigger.
Verwenden Sie die folgende Anweisung, um einen Trigger zu erstellen, der die angegebene Aufgabe innerhalb des angegebenen Zeitraums ausführt PL/SQL-Block:
<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>
wobei:
trigger_name
der Name des Triggers ist. 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
ist das Datum und die Uhrzeit, zu der die Aufgabe mit der Ausführung beginnt. end_date
ist das Datum und die Uhrzeit, zu der die Ausführung der Aufgabe endet.
2. Erstellen Sie einen Job
🎜🎜Erstellen Sie einen Job, der den Trigger mit der folgenden Anweisung aufruft: 🎜<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>🎜wobei: 🎜🎜🎜
job_name
der Name des Jobs ist. 🎜🎜start_date
ist das Datum und die Uhrzeit, zu der die Ausführung des Jobs beginnt. 🎜🎜interval
gibt an, wie oft der Job ausgeführt werden soll, in diesem Fall alle 60 Sekunden. 🎜🎜what
gibt den auszuführenden PL/SQL-Block an. 🎜🎜🎜🎜Beispiel🎜🎜🎜Um eine Aufgabe zu erstellen, die täglich stündlich zwischen 9 und 17 Uhr ausgeführt wird, können Sie den folgenden Code verwenden: 🎜rrreeeDas obige ist der detaillierte Inhalt vonSo richten Sie von Oracle geplante Aufgaben so ein, dass sie regelmäßig innerhalb eines bestimmten Zeitraums ausgeführt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!