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

2022-04-03 21:30:27 字數 1242 閱讀 1904

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

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

job引數是有submit()過程返回的binary_integer。

what引數是將被執行的pl/sql**塊。

next_date引數指何時將執行這個工作。寫job的時候可以不指定該值。

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

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

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

declare

jobno number;

begin

dbms_job.submit(

jobno,

'p_dosomething', --what

to_date(), --next_date,可以不填

'interval時間字串' --interval,關鍵設定

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_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

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 引數何時這個工作...