--建立調度任務
declare
jobno number;
begin
dbms_job.submit(jobno, --定時器ID,系統自動獲得
what =>'p_update_T_BS;', --p_update_T_BS為預存程序的名稱
next_date =>to_date('20130605160000','yyyy-mm-dd hh24:mi:ss'), --定時器開始執行的時間,(sysdate)這樣寫表示立即執行
Interval =>'sysdate+ 1 / (24*60*60)' --定義時間間隔,這裡是每秒執行一次
);
commit;
end;
select * from user_jobs;--查看調度任務
select * from dba_jobs_running;--查看正在執行的調度任務
select * from dba_jobs;--查看執行完的調度任務
--刪除任務
declare
jobno number;
begin
dbms_job.remove(63) ;--63為user_jobs中的job欄位對應的值
commit;
end;
1、 每分鐘執行
Interval => TRUNC(sysdate,’mi’) + 1 / (24*60)
2、 每天定時執行
例如:每天的淩晨2點執行
Interval => TRUNC(sysdate) + 1 +2 / (24)
3、 每周定時執行
例如:每周一淩晨2點執行
Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天
4、 每月定時執行
例如:每月1日淩晨2點執行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24
5、 每季度定時執行
例如每季度的第一天淩晨2點執行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24
6、 每半年定時執行
例如:每年7月1日和1月1日淩晨2點
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24
7、 每年定時執行
例如:每年1月1日淩晨2點執行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24
job執行出現異常比如沒有執行了:
看此值是不是零,是的話就更該 Alter system set job_queue_process=10;