スポンサードリンク
Oracleジョブ作成前準備(スケジュール作成)
本項では、Oracleスケジュールオブジェクトについて解説します。
Oracleスケジュールオブジェクト(以下、スケジュール)は、ジョブの実行時期と実行回数を指定します。スケジュールは複数のジョブで共有できます。ジョブの作成時にその都度細かいスケジュールを定義するは大変なので、事前にジョブを作成しておきそのスケジュールをジョブ作成時に呼び出します。たとえば、業務上の四半期の終了時期は、多くのジョブにとって共通の期間である可能性があります。ジョブの作成者は、新規のジョブを定義するたびに四半期の終了時期のスケジュールを定義するかわりに、名前付きのスケジュールを指し示すことができます。
<スケジュールの種類>
スケジュールには、次の2種類があります。
スケジュール |
説明 |
時間スケジュール |
時間スケジュールでは、ジョブを即時に実行するか、後で実行するようにスケジュールできます。時間スケジュールには、開始日時、オプションの終了日時およびオプションの繰返し間隔が含まれています。
|
イベントスケジュール |
イベント・スケジュールでは、在庫がしきい値を下回った時点、またはファイルがシステムに到着した時点など、特定のイベントが発生した時点でジョブを実行するように指定できます。
|
|
以下にスケジュールの作成手順を紹介します。
※スケジュールを作成するには、CREATE_SCHEDULEプロシージャまたはEnterprise Managerを使用します。スケジュールは、そのスケジュールを作成するユーザーのスキーマ内に作成され、最初に作成した時点で使用可能です。また、別のユーザーのスキーマ内に作成できます。作成したスケジュールは、他のユーザーが使用できます。スケジュールはPUBLICに対するアクセス権限付きで作成されます。したがって、スケジュールに対するアクセス権限を明示的に付与する必要はありません。
(1)スケジュール確認
現在のスケジュール一覧を確認します。
SQL> set pages 1000
SQL> SELECT schedule_name FROM dba_scheduler_schedules;
SCHEDULE_NAME
------------------------------------------------------------
BSLN_MAINTAIN_STATS_SCHED
FILE_WATCHER_SCHEDULE
DAILY_PURGE_SCHEDULE
SQL>
|
(2)スケジュール作成
「今日から毎日午後4時」に実行されるスケジュールを作成する。
SQL> BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE (
schedule_name => 'test_daily_16_schedule',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=16',
end_date => NULL,
comments => 'Repeats daily 16');
END;
/
PL/SQLプロシージャが正常に完了しました。
SQL>
|
<その他スケジュールサンプル>
●隔週金曜日に実行:FREQ=WEEKLY; INTERVAL=2; BYDAY=FRI;
●毎月末に実行:FREQ=MONTHLY; BYMONTHDAY=-1;
●毎月末の翌日に実行:FREQ=MONTHLY; BYMONTHDAY=-2;
●3月10日に実行:FREQ=YEARLY; BYMONTH=MAR; BYMONTHDAY=10;
●10日おきに実行:FREQ=DAILY; INTERVAL=10;
●毎日午後4時、5時および6時に実行:FREQ=DAILY; BYHOUR=16,17,18;
|
(3)スケジュール確認
SQL> set pages 1000
SQL> SELECT schedule_name FROM dba_scheduler_schedules;
SCHEDULE_NAME
------------------------------------------------------------
TEST_DAILY_16_SCHEDULE
BSLN_MAINTAIN_STATS_SCHED
FILE_WATCHER_SCHEDULE
DAILY_PURGE_SCHEDULE
SQL>
|
◎-Oracleジョブのネーミングルール
◎-Oracleジョブ作成前準備(プログラム作成)
◎-Oracleジョブ作成前準備(スケジュール作成)
◎-Oracleジョブ作成
◎-Oracleジョブ変更
◎-Oracleジョブ停止
◎-Oracleジョブ削除
◎-Oracleジョブ無効化・有効化
◎-イベントを使用したOracleジョブの開始
◎-Oracleジョブチェーン作成
◎-Oracleジョブの優先度付け
◎-Oracleジョブの監視
|
スポンサードリンク
|