この例は、DBMS_SCHEDULER
を使用して1時間ごとに実行するジョブをOracleで作成する方法を示しています。 パッケージ。
1。 DBMS_SCHEDULER.CREATE_JOBを使用してジョブを作成する
次のPL/SQLコードは、2019年10月20日の午前1時に開始されるジョブをスケジュールし、毎日1時間ごとに実行します。 繰り返し間隔パラメータから曜日名を削除して、特定の日を除外できます 。ジョブタイプはストアドプロシージャであり、ジョブアクションパラメータで指定されたプロシージャを実行します。
BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'HOURLY_JOB', job_type => 'STORED_PROCEDURE', job_action => 'YOUR_SCHEMA.YOUR_PROCEDURE', start_date => '20-OCT-19 01.00.00 AM Asia/Kolkata', repeat_interval => 'FREQ=HOURLY;BYDAY=MON,TUE,WED,THU,FRI,SAT,SUN', end_date => NULL, auto_drop => FALSE, job_class => 'SYS.DEFAULT_JOB_CLASS', comments => 'run job every hour'); END; /
2。ジョブを有効にする
BEGIN DBMS_SCHEDULER.enable('HOURLY_JOB'); END; /
1時間ごとのDBMS_SCHEDULER
これでジョブが作成され、有効になります。タイムゾーンは「アジア/コルカタ」から変更できます "次のクエリから値を取得して、任意の国のタイムゾーンに移動します:
SELECT DISTINCT tzname, TZ_OFFSET (tzname) FROM V$TIMEZONE_NAMES ORDER BY tzname;
関連チュートリアル:
- Oracle PL / SQL:DBMS_SCHEDULER.CREATE_JOB毎日1回実行