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ステートメントを設定することができます。