2017/01/27

オラクル スケジューラー テンプレ

  • Goal
    DBMS_SCHEDULERパッケージを使って、PL/SQLブロックや、プロシージャのスケジュールを作る。Oracle Schedulerを使う。

  • Sourceサンプル
    Sample1 - PLSQLブロックを5時57分から23時57分まで、毎時間流す
    Sample2 - プロシージャを2時間おきに
    流す

    ---- Sample1
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
    job_name => '"XXX"."YYYYYYY"', -- JOB の名前
    job_type => 'PLSQL_BLOCK',
    job_action => 'BEGIN
    --dbms_mview.refresh(''------'',''c'', NULL, TRUE, FALSE, 1, 0, 0, FALSE, FALSE);
    END;',
    number_of_arguments => 0,
    start_date => TO_TIMESTAMP_TZ('2017-01-25 00:00:00.000000000 AMERICA/CHICAGO','YYYY-MM-DD HH24:MI:SS.FF TZR'),
    -- 5時57分から23時57分まで、毎時間流す
    repeat_interval => 'FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI,SAT;BYHOUR=5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23;BYMINUTE=;BYSECOND=0',
    end_date => NULL,
    enabled => FALSE,
    auto_drop => FALSE,
    comments => 'Refresh ----- every 1 hour');
    DBMS_SCHEDULER.SET_ATTRIBUTE(
    name => '"XXX"."YYYYYYY"', -- JOB の名前
    attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF);
    DBMS_SCHEDULER.enable(
    name => '"XXX"."YYYYYYY"'); -- JOB の名前
    END;
    ---- Sample2
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
    job_name => '"XXX"."YYYYYYY"', -- JOB の名前
    job_type => 'STORED_PROCEDURE',
    job_action => 'XXXX.ZZZ_MAIN_PKG.XXX',--- Procudere名
    number_of_arguments => 0,
    start_date => NULL,
    -- 6時から20時まで2時間おきに流す
    repeat_interval => 'FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI,SAT;BYHOUR=6,8,10,12,14,16,18,20;',
    end_date => NULL,
    enabled => FALSE,
    auto_drop => FALSE,
    comments => 'test');
    DBMS_SCHEDULER.SET_ATTRIBUTE(
    name => '"XXX"."YYYYYYY"', -- JOB の名前
    attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF);
    DBMS_SCHEDULER.enable(
    name => '"XXX"."YYYYYYY"');
    END;
  • 参考 Thanks!!
    Oracle Scheduler マニュアル

0 件のコメント:

コメントを投稿