ORACLE JOB間隔時間參考

2021-05-11 00:41:28 字數 4050 閱讀 7552

關鍵字: 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 ...