Heim  >  Artikel  >  Datenbank  >  So richten Sie von Oracle geplante Aufgaben so ein, dass sie regelmäßig innerhalb eines bestimmten Zeitraums ausgeführt werden

So richten Sie von Oracle geplante Aufgaben so ein, dass sie regelmäßig innerhalb eines bestimmten Zeitraums ausgeführt werden

下次还敢
下次还敢Original
2024-04-18 15:54:181003Durchsuche

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 von Oracle geplante Aufgaben so ein, dass sie regelmäßig innerhalb eines bestimmten Zeitraums ausgeführt werden

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: 🎜rrreee

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn