首先進(jìn)入 oracle 的 command window
建立 job ,(注:P_import_tables_1(1)是存儲(chǔ)過程)
SQL> variable job1 number;
SQL> begin
dbms_job.submit(:job1,'P_import_tables_1(1);',sysdate,'TRUNC(SYSDATE + 1)+(18*60+15)/(24*60)');
end;
/
執(zhí)行 job
SQL> begin
dbms_job.run(:job1);
end;
/
刪除 job
SQL> begin
dbms_job.remove(:job2);
end;
/
DBA_JOBS
=========================================
字段(列) 類型 描述
JOB NUMBER 任務(wù)的唯一標(biāo)示號(hào)
LOG_USER VARCHAR2(30) 提交任務(wù)的用戶
PRIV_USER VARCHAR2(30) 賦予任務(wù)權(quán)限的用戶
SCHEMA_USER VARCHAR2(30) 對(duì)任務(wù)作語法分析的用戶模式
LAST_DATE DATE 最后一次成功運(yùn)行任務(wù)的時(shí)間
LAST_SEC VARCHAR2(8) 如HH24:MM:SS格式的last_date日期的小時(shí),分鐘和秒
THIS_DATE DATE 正在運(yùn)行任務(wù)的開始時(shí)間,如果沒有運(yùn)行任務(wù)則為null
THIS_SEC VARCHAR2(8) 如HH24:MM:SS格式的this_date日期的小時(shí),分鐘和秒
NEXT_DATE DATE 下一次定時(shí)運(yùn)行任務(wù)的時(shí)間
NEXT_SEC VARCHAR2(8) 如HH24:MM:SS格式的next_date日期的小時(shí),分鐘和秒
TOTAL_TIME NUMBER 該任務(wù)運(yùn)行所需要的總時(shí)間,單位為秒
BROKEN VARCHAR2(1) 標(biāo)志參數(shù),Y標(biāo)示任務(wù)中斷,以后不會(huì)運(yùn)行
INTERVAL VARCHAR2(200) 用于計(jì)算下一運(yùn)行時(shí)間的表達(dá)式
FAILURES NUMBER 任務(wù)運(yùn)行連續(xù)沒有成功的次數(shù)
WHAT VARCHAR2(2000) 執(zhí)行任務(wù)的PL/SQL塊
CURRENT_SESSION_LABEL RAW MLSLABEL 該任務(wù)的信任Oracle會(huì)話符
CLEARANCE_HI RAW MLSLABEL 該任務(wù)可信任的Oracle最大間隙
CLEARANCE_LO RAW MLSLABEL 該任務(wù)可信任的Oracle最小間隙
NLS_ENV VARCHAR2(2000) 任務(wù)運(yùn)行的NLS會(huì)話設(shè)置
MISC_ENV RAW(32) 任務(wù)運(yùn)行的其他一些會(huì)話參數(shù)
--------------------------
描述 INTERVAL參數(shù)值
每天午夜12點(diǎn) 'TRUNC(SYSDATE + 1)'
每天早上8點(diǎn)30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12點(diǎn) 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每個(gè)月第一天的午夜12點(diǎn) 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每個(gè)季度最后一天的晚上11點(diǎn) 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6點(diǎn)10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'
--------------------------
1:每分鐘執(zhí)行
Interval => TRUNC(sysdate,'mi') + 1/ (24*60)
2:每天定時(shí)執(zhí)行
例如:每天的凌晨1點(diǎn)執(zhí)行
Interval => TRUNC(sysdate) + 1 +1/ (24)
3:每周定時(shí)執(zhí)行
例如:每周一凌晨1點(diǎn)執(zhí)行
Interval => TRUNC(next_day(sysdate,'星期一'))+1/24
4:每月定時(shí)執(zhí)行
例如:每月1日凌晨1點(diǎn)執(zhí)行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24
5:每季度定時(shí)執(zhí)行
例如每季度的第一天凌晨1點(diǎn)執(zhí)行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24
6:每半年定時(shí)執(zhí)行
例如:每年7月1日和1月1日凌晨1點(diǎn)
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
7:每年定時(shí)執(zhí)行
例如:每年1月1日凌晨1點(diǎn)執(zhí)行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
TRUNC()函數(shù)分兩種
trunc實(shí)際上是truncate函數(shù),字面意思是截?cái)啵匚病?
1.TRUNC(for dates)
TRUNC函數(shù)為指定元素而截去的日期值。截尾后返回最近日期
其具體的語法格式如下:
TRUNC(date[,fmt])
date 一個(gè)日期值
fmt 日期格式,該日期將由指定的元素格式所截去。忽略它則由最近的日期截去
下面是該函數(shù)的使用情況:
select trunc(sysdate,'mm') from dual=2009-1-1
2.TRUNC(for number)
TRUNC函數(shù)的功能是將數(shù)字進(jìn)行截?cái)?對(duì)所截取的結(jié)果并不四舍五入。
其具體的語法格式如下
TRUNC(number[,decimals])
number 待做截取處理的數(shù)值
decimals 指明需保留小數(shù)點(diǎn)后面的位數(shù)。可選項(xiàng),忽略它則截去所有的小數(shù)部分
下面是該函數(shù)的使用情況:
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80
注意:第二個(gè)參數(shù)可以為負(fù)數(shù),表示為小數(shù)點(diǎn)左邊指定位數(shù)后面的部分截去,即均以0記。