sql >> データベース >  >> RDS >> Oracle

DBMS_SCHEDULERジョブは1時間ごとに実行する例

    この例は、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回実行
    1. HibernateのScrollableResultsを使用して9千万件のレコードをゆっくりと読み取る

    2. Oracle Cloud Infrastructureでのイベントの操作パート1:サービスの基本

    3. MySQLでの複数の更新

    4. ORはSQLServerのCASEステートメントではサポートされていません