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
|