DBMS_JOBでjobを登録すると決まった時間にSQLを実行してくれる。
alter index や analyze などを登録しておくと便利。
jobを登録する
declare job number ; begin --JOBの登録 DBMS_JOB.submit(job, --job番号 (戻り値) 'update wk_table1 set money =111;', --実行するSQL TO_DATE('200801010300','yyyymmddhh24mi') , --次回実行日 SYSDATE + 1); --実行間隔 commit; end; /
実行するSQL にストアドプロシージャを指定することも可能。ただし、ストアドファンクションは不可)
登録されているjobを参照する
select * from user_jobs;
jobを削除する
begin DBMS_JOB.remove(job番号); end; / commit;
jobの手動起動
execute DBMS_JOB.run(job番号);
removeやrunで使用するjob番号はuser_jobsで確認できる。