Rumah >pangkalan data >Oracle >Cara menyediakan tugas berjadual oracle untuk dilaksanakan secara kerap dalam tempoh masa tertentu

Cara menyediakan tugas berjadual oracle untuk dilaksanakan secara kerap dalam tempoh masa tertentu

下次还敢
下次还敢asal
2024-04-18 15:54:181068semak imbas

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 tugas berjadual oracle untuk dilaksanakan secara kerap dalam tempoh masa tertentu

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:

  • nama_trigger ialah nama pencetus. 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
  • tarikh_mula ialah tarikh dan masa apabila tugasan mula dilaksanakan.

tarikh_akhir ialah tarikh dan masa apabila tugas tamat pelaksanaan. . tarikh_mula ialah tarikh dan masa apabila kerja mula dilaksanakan.

selang menentukan kekerapan kerja harus dilaksanakan, dalam kes ini, setiap 60 saat.

🎜apa menentukan blok PL/SQL untuk dilaksanakan. 🎜🎜🎜🎜Contoh🎜🎜🎜Untuk membuat tugasan yang dilaksanakan setiap jam antara 9 pagi dan 5 petang setiap hari, anda boleh menggunakan kod berikut: 🎜
<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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn