oracle定時器(job)各時間段寫法彙總
一條輝 原文:
鏈結對於dba來說,資料庫job再熟悉不過了,因為經常要資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作。但是,oracle定時器job時間的處理上,千變萬化,今天我把比較常用寫法彙總如下:
在總結之前,先把job的引數一一說明一下:
job引數是由
submit()
過程返回的
binary_ineger
。這個值用來唯一標識乙個工作;
what
引數是將被執行的
pl/sql
**塊;
next_date
引數指識何時將執行這個工作。寫
job的時候可以不指定該值;
interval
引數何時這個工作將被重執行。
其中interval這個值是決定job何時,被重新執行的關鍵。
例如:有儲存過程 p_dosomethings,需要被不同的時間間隔執行。12
3456
'p_dosomething;
',
--what
7to_date(
'20090101020000',
'yyyy-mm-dd hh24:mi:ss'),
--next_date,可以不填
8'interval時間字串'--
interval,關鍵設定
9);
10commit;
11end;
12
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_months(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當然上面羅列不可能照顧到方方面面,但是稍微變化一下,就能衍生出無數的例子,聰明的你一定會的吧,我這裡就不多羅嗦了。
Spring定時任務寫法
這幾天因為工作的需要,用到了spring的定時任務的功能,網上查資料,並且實際運用了一下,覺得spring還是很智慧型化的,只需要配置一下配置檔案就可以了,下面的這篇文章我覺得還是很好的,摘錄下來,供以後參考用 package util import org.apache.log4j.public ...
oracle 定時任務
在pl sql 中執行命名 第一步 開啟乙個sql window 視窗,建立一張測試表 create table test date a date 第二步 建立儲存過程 create or replace procedure test myproc asbegininsert into test d...
oracle定時任務
1.建立儲存過程 create orreplace procedure proc test isbegin insert into test values 1 2 commit end prc job test 2.建立任務 declare job number begin sys.dbms job...