當前位置:
首頁 > 知識 > Oracle資料庫定時器Job

Oracle資料庫定時器Job

寫法:

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;

---------------------

Oracle資料庫定時器Job

打開今日頭條,查看更多圖片

作者:欣怡

原文:https://blog.csdn.net/niuch1029291561/article/details/12504315

版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

前端項目中常用es6知識總結——箭頭函數及this指向、尾調用優化
安裝weblogic不同版本對JDK和Spring的支持度

TAG:程序員小新人學習 |