今天用PL/SQL Developer寫了一個簡單的作業調度,但卻費了我不少周折,在此分享給和我一樣的初學者。
1. 鼠標右鍵點擊 jobs 彈出 Create Job 對話框,如下圖:
2. 在對話框中輸入相應的值,如下圖:
其中:
What ——作業執行時將要調用的存儲過程;
Next date ——下一次作業執行時間;
Interval ——作業執行時間間隔,這個參數涉及到Next date的值,Next是按照Interval
計算出來的。
Interval幾種常用的寫法:
1:每分鍾執行
Interval => TRUNC(sysdate,'mi') + 1/ (24*60)
或
Interval => sysdate+1/1440
2:每天定時執行
例如:每天的凌晨1點執行
Interval => TRUNC(sysdate) + 1 +1/ (24)
3:每周定時執行
例如:每周一凌晨1點執行
Interval => TRUNC(next_day(sysdate,'星期一'))+1/24
4:每月定時執行
例如:每月1日凌晨1點執行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24
5:每季度定時執行
例如每季度的第一天凌晨1點執行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24
6:每半年定時執行
例如:每年7月1日和1月1日凌晨1點
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
7:每年定時執行
例如:每年1月1日凌晨1點執行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
-----------------------------------------------------------------------------
DECLARE job NUMBER;
begin
sys.dbms_job.submit(job => job, --注意:此處沒有冒號了
what => 'check_equipment;',--存儲過程名
next_date => to_date('25-01-2017 01:00:00', 'dd-mm-yyyy hh24:mi:ss'),--下次執行時間
interval => 'TRUNC(sysdate) + 1 +1/ (24)');--執行的時間間隔
commit;
end;
/
-----------------------------------------------------------------------------