ヘッダーをスキップ

Oracle Database 管理者ガイド
10gリリース2(10.2)

B19224-02
目次
目次
索引
索引

戻る 次へ

25 DBMS_JOBからDBMS_SCHEDULERへの移行

Oracle Databaseには、Oracle Scheduler(スケジューラ)を使用した高度なスケジューリング機能が用意されています。スケジューラによって、以前のOracle Databaseのジョブ・スケジューラであったDBMS_JOBパッケージよりさらに多くの機能が提供されます。この章では、DBMS_JOBを使用して作成される文を取得し、それらをDBMS_SCHEDULERを使用してリライトする方法を簡単に説明します。DBMS_SCHEDULERパッケージはスケジューラを構成および操作するために使用します。

関連項目

DBMS_JOBパッケージの詳細は、Oracle9iソフトウェアに付属の提供PL/SQLパッケージのマニュアルを参照してください。 

この章の内容は、次のとおりです。

DBMS_JOBから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;
/

関連項目

 


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引