寫法:
declare
jobno number;
begin
dbms_job.submit(
jobno,
“nextMonthInventoryCARRYFORWARD(to_char(sysdate,”||””””||”yyyy-MM-dd”||””””||”));”, –what
sysdate, –next_date,可以不填
“TRUNC(LAST_DAY(SYSDATE))+1+2/24”–“Interval時間字元串” –interval,關鍵設置
);
end;
在Oracle資料庫中,我們經常會用到定時器Job來讓資料庫定時的自動執行一些腳本,或做資料庫備份,或做數據的提煉,或做資料庫的性能優化,包括重建索引等等的工作。但是,Oracle定時器Job時間的處理上,千變萬化,還是比較靈活的。本文我們總結了一些Oracle資料庫定時器Job在各個時間段得寫法,接下來我們就開始介紹這些。
Job參數是有Submit()過程返回的binary_integer。
what參數是將被執行的PL/SQL代碼塊。
next_date參數指何時將運行這個工作。寫Job的時候可以不指定該值。
interval參數何時這個工作將被重執行。
其中Interval這個值是決定Job何時,被重新執行的關鍵。
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_MONTH(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—————–
select job, what, next_date, next_sec, sysdate, failures, broken,interval
from user_jobs a;
————-修改JOB—————–
begin
dbms_job.change(62 ,”MY_JOP;”, sysdate,”sysdate+2/(24*60)” );
commit;
end;
begin
dbms_job.change(62 ,”MY_JOP;”, to_date(“2011-08-01 22:00:00”, “yyyy-mm-dd hh24:mi:ss”),”sysdate+1″);
commit;
end;
————-刪除JOB—————–
begin
dbms_job.remove(41);
end;
————-運行Job———————–
begin
dbms_job.run(41);
end;
———————
打開今日頭條,查看更多圖片
作者:欣怡
原文:https://blog.csdn.net/niuch1029291561/article/details/12504315
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!