オラクルでは、スケジューラーを作成してプロシージャやexeなどのプログラムを自動実行することができます。
スケジューラーの作成には、DBMS_SCHEDULER.CREATE_JOBパッケージを使用します。
サンプル
例)'TEST_JOB'というスケジューラーを作成する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name => 'TEST_JOB', job_type => 'STORED_PROCEDURE', job_action => 'PRC_SAMPLE1', start_date => TO_DATE('2017/01/01 00:00:00','yyyy/mm/dd hh24:mi:ss'), repeat_interval => 'FREQ=MINUTELY;INTERVAL=1', end_date => TO_DATE('2999/12/31 00:00:00','yyyy/mm/dd hh24:mi:ss'), job_class => 'DEFAULT_JOB_CLASS', auto_drop => FALSE, enabled => TRUE, comments => 'サンプルジョブ'); END; / |
パラメータ | 意味 |
---|---|
job_name | ジョブ名 |
job_type | 実行するジョブの種類を指定する。 STORED_PROCEDURE:プロシージャ EXECUTABLE:外部プログラム(exeなど) PLSQL_BLOCK:PL/SQLブロック |
job_action | ジョブの実行対象(job_typeによって変わる) STORED_PROCEDURE:プロシージャ名(例)TEST_PRC EXECUTABLE:プログラム名(例)c:\hoge.exe PLSQL_BLOCK:PL/SQLブロック(例)BEGIN ~ END; |
start_date | ジョブの開始日時(日付型で指定する) |
repeat_interval | ジョブの実行間隔 FREQ= 年:YEARLY 月:MONTHLY 週:WEEKLY 日:DAILY 時:HOURLY 分:MINUTELY 秒:SECONDLY INTERVAL= 数値:指定した回数毎に実行 (例)'FREQ=HOURLY;INTERVAL=5 :5時間毎に実行する BYMONTH:実行月を指定する(1~12) (例)'FREQ=DAILY;BYMONTH=8' 8月に毎日実行する BYWEEKNO:実行週を指定する(1~53) (例)'BYWEEKNO=30' 年の30週目に実行する BYYEARDAY:実行日を指定する(1~366) (例)'BYYEARDAY=100' 年の100日目に実行する BYDATE:実行日を指定する(MMDD形式) (例)'BYDATE=100' 年の100日目に実行する BYMONTHDAY:実行日を指定する(1~31) (例)'FREQ=MONTHLY;BYMONTHDAY=25' 毎月25日に実行する BYHOUR:実行時間を指定する(0~23) (例)'FREQ=DAILY;BYHOUR=3' 毎日3時に実行する BYMINUTE:実行分を指定する(0~59) (例)'FREQ=HOURLY;BYMINUTE=30' 毎時30分に実行する BYSECOND:実行秒を指定する(0~59) (例)'FREQ=SECONDLY;BYSECOND=15' 毎分15秒に実行する |
end_date | ジョブの終了日時(日付型で指定する) |
job_class | ジョブに関連付けるクラスを指定する (例)'DEFAULT_JOB_CLASS' |
auto_drop | ジョブ完了時に削除する/しないの設定 true:削除する(デフォルト) false:削除しない |
enabled | ジョブが有効/無効の設定 true:有効 false:無効(デフォルト) |
comments | ジョブに対するコメント |
解説
- 作成したジョブの内容を確認したい場合は、USER_SCHEDULER_JOBSを参照します。 ⇒スケジューラージョブの情報を取得する
- ジョブを有効化にしたり無効化にしたりする場合は以下ページをご覧ください。
⇒[DBMSパッケージ] スケジューラジョブを有効/無効にする