DBMS_SCHEDULER メモ

Oracle Scheduler
スケジュールの確認
dba_scheduler_jobs
select JOB_NAME ,SCHEDULE_NAME from DBA_SCHEDULER_JOBS;

スケジュールに定義されているプログラムの確認
select program_name,program_action from dba_scheduler_programs;

スケジュール間隔の確認
select window_name,repeat_interval from dba_scheduler_windows;

ロール SCHEDULE_ADMIN

DBMS_JOB
VARIABLE jobno NUMBER;
BEGIN
DBMS_JOB.SUBMIT(:jobno, 'INSERT INTO xxx VALUES (..., '....',
   NULL, NULL, NULL);', SYSDATE, 'SYSDATE+1');
COMMIT;
END;

DBMS_SCHEDULERを使用した文

DBMS_SCHEDULER
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
   job_name          =>  'job1',
   job_type          =>  'PLSQL_BLOCK',
   job_action        =>  'INSERT INTO xxx VALUES (...., '....',
      NULL, NULL, NULL);');
   start_date        =>  SYSDATE,
   repeat_interval   =>  'FREQ = DAILY; INTERVAL = 1');
END;


変更
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
   name          => 'JOB1',
   attribute     => 'job_action',
   value         => 'INSERT INTO employees VALUES (...., 'aaaa',  
      NULL, NULL, NULL);');
END;


ジョブキューからジョブを削除
BEGIN
   DBMS_SCHEDULER.DROP_JOB('ジョブ名');
END;


曜日指定
月の最後の金曜日
FREQ=MONTHLY; BYDAY=-1FRI

'FREQ = DAILY; INTERVAL = 1'は、毎日 
'FREQ = DAILY; INTERVAL = 2'は、一日おき 

同時に2つのウィンドウを開くことはできない。

実行結果の確認
USER_SCHEDULER_JOB_RUN_DETAILS


[一つ前に戻る] TOP PAGE
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送