Oracle で指定した期間内に定期的に実行されるタスクを設定するには、トリガーとジョブを作成する必要があります。 1. トリガーを使用して、実行期間 (開始日と終了日) と実行するタスクを指定します。 2. ジョブを使用して、トリガーの名前、実行開始日、および繰り返しの頻度を指定します。
Oracle で指定した期間内に定期的に実行されるタスクを設定する方法
Oracle データベースでは、 DBMS_JOB パッケージを使用して、スケジュールされたタスクを作成および管理できます。一定期間内に定期的に実行されるタスクを設定するには、次の手順に従ってください。
1. トリガーを作成します
次のステートメントを使用して作成します。トリガー。このトリガーは、指定された期間内に指定された 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>
ここで:
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
実行する PL/SQL ブロックを指定します。 例
毎日午前 9 時から午後 5 時までの間、1 時間ごとに実行されるタスクを作成するには、次のコードを使用できます。
<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>
以上がOracle のスケジュールされたタスクを一定期間内に定期的に実行するように設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。