Oracle定時器(Job)各時間段寫法彙總

2022-01-23 18:35:35 字數 1754 閱讀 7726

對於dba來說,資料庫job再熟悉不過了,因為經常要資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作。但是,oracle定時器job時間的處理上,千變萬化,今天我把比較常用寫法彙總如下:

在總結之前,先把job的引數一一說明一下:

job引數是由

submit()

過程返回的

binary_ineger

。這個值用來唯一標識乙個工作;

what

引數是將被執行的

pl/sql

**塊;

next_date

引數指識何時將執行這個工作。寫

job的時候可以不指定該值;

interval

引數何時這個工作將被重執行。

其中interval這個值是決定job何時,被重新執行的關鍵。

例如:有儲存過程 p_dosomethings,需要被不同的時間間隔執行。

1declare   

2jobno number;   

3begin   

4dbms_job.submit(

5jobno,

6'p_dosomething;

',  

--what

7to_date(

'20090101020000',

'yyyy-mm-dd hh24:mi:ss'),

--next_date,可以不填

8'interval時間字串'--

interval,關鍵設定

9);   

10commit;   

11end; 

121、 每分鐘執行

interval => trunc(sysdate,』mi』) + 1 / (24*60)

2、 每天定時執行

例如:每天的凌晨2點執行

interval => trunc(sysdate) + 1+

2/ (24)

3、 每週定時執行

例如:每週一凌晨2點執行

interval =>trunc(next_day(sysdate,

'星期一

'))+2/

244、 每月定時執行

例如:每月1日凌晨2點執行

interval =>trunc(last_day(sysdate))+1+

2/245、 每季度定時執行

例如每季度的第一天凌晨2點執行

interval => trunc(add_months(sysdate,3),

'q') + 2/

246、 每半年定時執行

例如:每年7月1日和1月1日凌晨2點

interval => add_months(trunc(sysdate,

'yyyy'),6

)+2/24

7、 每年定時執行

例如:每年1月1日凌晨2點執行

interval =>add_months(trunc(sysdate,

'yyyy'),6

)+2/24

當然上面羅列不可能照顧到方方面面,但是稍微變化一下,就能衍生出無數的例子,聰明的你一定會的吧,我這裡就不多羅嗦了。

**請註明:一條輝的部落格(liunx.cnblogs.com)

Oracle定時器(Job)各時間段寫法彙總

對於dba來說,資料庫job在熟悉不過了,因為經常要資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作。但是,oracle定時器job時間的處理上,千變萬化,今天我把比較常用的寫法彙總如下 在總結之前,先把job的引數一一說明一下 job引數...

Oracle定時器(Job)各時間段寫法彙總

對於dba來說,資料庫job在熟悉不過了,因為經常要資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作。但是,oracle定時器job時間的處理上,千變萬化,今天我把比較常用的寫法彙總如下 在總結之前,先把job的引數一一說明一下 job引數...

Oracle定時器(Job)各時間段寫法彙總

在總結之前,先把job的引數一一說明一下 job引數是由 submit 過程返回的 binary ineger 這個值用來唯一標識乙個工作 what 引數是將被執行的 pl sql 塊 next date 引數指識何時將執行這個工作。寫 job的時候可以不指定該值 interval 引數何時這個工作...