| Oracle Database 管理者ガイド 10gリリース2(10.2) B19224-02 |
|
Oracle Databaseには、Oracle Scheduler(スケジューラ)を使用した高度なスケジューリング機能が用意されています。スケジューラによって、以前のOracle Databaseのジョブ・スケジューラであったDBMS_JOBパッケージよりさらに多くの機能が提供されます。この章では、DBMS_JOBを使用して作成される文を取得し、それらをDBMS_SCHEDULERを使用してリライトする方法を簡単に説明します。DBMS_SCHEDULERパッケージはスケジューラを構成および操作するために使用します。
この章の内容は、次のとおりです。
この項では、DBMS_JOBパッケージで作成されたジョブを取得し、それらをDBMS_SCHEDULERパッケージを使用してリライトする方法の例をいくつか示します。
次は、DBMS_JOBを使用してジョブを作成する例です。
VARIABLE jobno NUMBER; BEGIN DBMS_JOB.SUBMIT(:jobno, 'INSERT INTO employees VALUES (7935, ''SALLY'', ''DOGAN'', ''sally.dogan@xyzcorp.com'', NULL, SYSDATE, ''AD_PRES'', NULL, NULL, NULL, NULL);', SYSDATE, 'SYSDATE+1'); COMMIT; END; /
DBMS_SCHEDULERを使用した等価の文は、次のようになります。
BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name => 'job1', job_type => 'PLSQL_BLOCK', job_action => 'INSERT INTO employees VALUES (7935, ''SALLY'', ''DOGAN'', ''sally.dogan@xyzcorp.com'', NULL, SYSDATE,''AD_PRES'', NULL, NULL, NULL, NULL);'); start_date => SYSDATE, repeat_interval => 'FREQ = DAILY; INTERVAL = 1'); END; /
次は、DBMS_JOBを使用してジョブを変更する例です。
BEGIN DBMS_JOB.WHAT(31, 'INSERT INTO employees VALUES (7935, ''TOM'', ''DOGAN'', ''tom.dogan@xyzcorp.com'', NULL, SYSDATE,''AD_PRES'', NULL, NULL, NULL, NULL);'); COMMIT; END; /
この文では、別の値を挿入するようにJOB1の処理が変更されます。DBMS_SCHEDULERを使用した等価の文は、次のようになります。
BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE( name => 'JOB1', attribute => 'job_action', value => 'INSERT INTO employees VALUES (7935, ''TOM'', ''DOGAN'', ''tom.dogan@xyzcorp.com'', NULL, SYSDATE, ''AD_PRES'', NULL, NULL, NULL, NULL);'); END; /
次の例では、DBMS_JOBを使用してジョブを削除します。14144は実行されているジョブの番号です。
BEGIN DBMS_JOB.REMOVE(14144); COMMIT; END; /
DBMS_SCHEDULERを使用して、かわりに次のような文を発行します。
BEGIN DBMS_SCHEDULER.DROP_JOB('myjob1'); END; /
|
関連項目
|
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|