Rumah >pangkalan data >Oracle >Cara menyediakan tugas berjadual oracle untuk dilaksanakan secara kerap dalam tempoh masa tertentu
Untuk menyediakan tugasan yang akan dilaksanakan secara kerap dalam tempoh masa tertentu dalam Oracle, anda perlu mencipta pencetus dan kerja: 1. Gunakan pencetus untuk menentukan tempoh masa pelaksanaan (tarikh mula dan tamat) dan tugasan yang akan dilaksanakan; Gunakan kerja untuk menentukan pencetus Nama pelayan, tarikh mula pelaksanaan dan kekerapan berulang.
Cara menyediakan tugasan untuk dilaksanakan secara kerap dalam tempoh masa yang ditetapkan dalam Oracle
Dalam pangkalan data Oracle, anda boleh menggunakan pakej DBMS_JOB untuk mencipta dan mengurus tugas berjadual. Untuk menetapkan tugasan untuk dilaksanakan secara kerap dalam tempoh masa tertentu, sila ikuti langkah di bawah:
1 Cipta pencetus
Gunakan penyataan berikut untuk mencipta pencetus yang akan melaksanakan tugasan yang ditentukan dalam tempoh yang ditetapkan. masa. Blok 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>
di mana:
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
<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>
Atas ialah kandungan terperinci Cara menyediakan tugas berjadual oracle untuk dilaksanakan secara kerap dalam tempoh masa tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!