關鍵字: oracle job 間隔時間 trunc
假設你的儲存過程名為proc_rain_jm
再寫乙個儲存過程名為proc_job_rain_jm
內容是:
create or replace procedure proc_job_rain_jm is li_jobno number; begin dbms_job.submit(li_jobno,'proc_rain_jm;',sysdate,'trunc(sysdate + 1)'); end;
提交job語法:
begin sys.dbms_job.submit(job => :job, what => 'p_clear_packbal;', next_date => to_date('04-08-2008 05:44:09', 'dd-mm-yyyy hh24:mi:ss'), interval => 'sysdate+ 1/360'); commit; end;
-------------------------
建立job
variable jobno number; begin dbms_job.submit(:jobno, 'p_cred_plan;',sysdate,'sysdate+1/2880',true); commit;
執行job
begin dbms_job.run(:job1); end;
刪除job
begin dbms_job.remove(:job1); end;
dba_jobs
=========================================
字段(列) 型別 描述
job number 任務的唯一標示號
log_user varchar2(30) 提交任務的使用者
priv_user varchar2(30) 賦予任務許可權的使用者
schema_user varchar2(30) 對任務作語法分析的使用者模式
last_date date 最後一次成功執行任務的時間
last_sec varchar2(8) 如hh24:mm:ss格式的last_date日期的小時,分鐘和秒
this_date date 正在執行任務的開始時間,如果沒有執行任務則為null
this_sec varchar2(8) 如hh24:mm:ss格式的this_date日期的小時,分鐘和秒
next_date date 下一次定時執行任務的時間
next_sec varchar2(8) 如hh24:mm:ss格式的next_date日期的小時,分鐘和秒
total_time number 該任務執行所需要的總時間,單位為秒
broken varchar2(1) 標誌引數,y標示任務中斷,以後不會執行
interval varchar2(200) 用於計算下一執行時間的表示式
failures number 任務執行連續沒有成功的次數
what varchar2(2000) 執行任務的pl/sql塊
current_session_label raw mlslabel 該任務的信任oracle會話符
clearance_hi raw mlslabel 該任務可信任的oracle最大間隙
clearance_lo raw mlslabel 該任務可信任的oracle最小間隙
nls_env varchar2(2000) 任務執行的nls會話設定
misc_env raw(32) 任務執行的其他一些會話引數
--------------------------
描述 interval引數值
每天午夜12點 'trunc(sysdate + 1)'
每天早上8點30分 'trunc(sysdate + 1) + (8*60+30)/(24*60)'
每星期二中午12點 'next_day(trunc(sysdate ), ''tuesday'' ) + 12/24'
每個月第一天的午夜12點 'trunc(last_day(sysdate ) + 1)'
每個季度最後一天的晚上11點 'trunc(add_months(sysdate + 2/24, 3 ), 'q' ) -1/24'
每星期六和日早上6點10分 'trunc(least(next_day(sysdate, ''saturday"), next_day(sysdate, "sunday"))) + (6×60+10)/(24×60)'
--------------------------
1:每分鐘執行
interval => trunc(sysdate,'mi') + 1/ (24*60)
2:每天定時執行
例如:每天的凌晨1點執行
interval => trunc(sysdate) + 1 +1/ (24)
3:每週定時執行
例如:每週一凌晨1點執行
interval => trunc(next_day(sysdate,'星期一'))+1/24
4:每月定時執行
例如:每月1日凌晨1點執行
interval =>trunc(last_day(sysdate))+1+1/24
5:每季度定時執行
例如每季度的第一天凌晨1點執行
interval => trunc(add_months(sysdate,3),'q') + 1/24
6:每半年定時執行
例如:每年7月1日和1月1日凌晨1點
interval => add_months(trunc(sysdate,'yyyy'),6)+1/24
7:每年定時執行
例如:每年1月1日凌晨1點執行
interval =>add_months(trunc(sysdate,'yyyy'),12)+1/24
trunc()函式分兩種
trunc實際上是truncate函式,字面意思是截斷,截尾。
1.trunc(for dates)
trunc函式為指定元素而截去的日期值。截尾後返回最近日期
其具體的語法格式如下:
trunc(date[,fmt])
date 乙個日期值
fmt 日期格式,該日期將由指定的元素格式所截去。忽略它則由最近的日期截去
下面是該函式的使用情況:
select trunc(sysdate,'mm') from dual=2009-1-1
2.trunc(for number)
trunc函式的功能是將數字進行截斷,對所擷取的結果並不四捨五入。
其具體的語法格式如下
trunc(number[,decimals])
number 待做擷取處理的數值
decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分
下面是該函式的使用情況:
trunc(89.985,2)=89.98
trunc(89.985)=89
trunc(89.985,-1)=80
注意:第二個引數可以為負數,表示為小數點左邊指定位數後面的部分截去,即均以0記。
Oracle JOB 間隔時間參考解析
標籤 oracle job oracle 如果你的儲存過程名為proc rain jm 再寫乙個儲存過程名為proc job rain jm 內容是 create or replace procedure proc job rain jm is li jobno number begin dbms ...
Oracle Job時間間隔設定
初始化相關引數job queue processes alter system set job queue processes 39 scope spfile 最大值不能超過1000 job queue interval 10 排程作業重新整理頻率秒為單位 job queue process 表示o...
python 獲取時間間隔時間戳日期
在現實專案中經常會用到時間戳輪,因為有時候資料是按小時儲存,按小時取出某一天的資料,因此需要輪詢去取時間 在python中 可以這樣 begintime int time.mktime time.strptime 20181023 y m d endtime begintime 86400 for ...