PL/SQLでSQL文を定期的に実行する方法は何ですか?

PL/SQLでは、DBMS_SCHEDULERパッケージを使用してSQLステートメントを定期的に実行することができます。以下は例です:1. 定期的に実行されるSQLステートメントが含まれるPL/SQLプロシージャを作成します。例えば、表にレコードを挿入するプロシージャを作成します。

CREATE OR REPLACE PROCEDURE insert_record AS
BEGIN

INSERT INTO your_table (column1, column2)

 

VALUES (‘value1’, ‘value2’);

 

COMMIT; END;


2. DBMS_SCHEDULERを使用して、定期的に実行する時間と頻度を定義するジョブを作成します。例えば、毎日午前10時に上記のレコード挿入プロセスを実行するジョブを作成します。

BEGIN

 

DBMS_SCHEDULER.CREATE_JOB (

 

job_name           => ‘insert_record_job’,

 

job_type           => ‘PLSQL_BLOCK’,

 

job_action         => ‘BEGIN insert_record; END;’,

 

start_date         => SYSTIMESTAMP,

 

repeat_interval    => ‘FREQ=DAILY; BYHOUR=10’,

 

enabled            => TRUE); END;


上記のコードのrepeat_intervalパラメータは、ジョブの実行頻度を定義するために使用されます。この例では、ジョブは毎日午前10時に1回実行されます。3. ジョブを有効にする。

BEGIN

 

DBMS_SCHEDULER.ENABLE(‘insert_record_job’); END;


作业を有効にしたら、定期実行が開始されます。上記の例以外にも、DBMS_SCHEDULERには特定の日時を指定したり、繰り返しルールを追加したり、間隔を定義したりするなど、より柔軟な定期実行オプションが用意されています。具体的な要件に合わせて、定期実行のSQLステートメントを設定することができます。

bannerAds