我申请这个blog是为了督促自己,把自己平时的一些想法和思考结果保留下来。 本博客所有内容均为原创,如有转载请注明作者和出处

利用TRUNC函数定制JOB的时间间隔

上一篇 / 下一篇  2004-12-31 00:00:00 / 个人分类:ORACLE

定制JOB的下次执行时间的关键是利用trunc()函数,使计算时间基于一个确定的时间点。

举几个简单的例子:

1.每个小时整点执行的例子:

declare
:`"pN"x"@0 v_jobno number;ITPUB个人空间;|;S:i Y5maYw#y
begin
1vt;d-?$CG R*|A;n0 dbms_job.submit(v_jobno, 'null;', trunc(sysdate, 'HH24'), 'trunc(sysdate, ''HH24'') + 1/24');
R E/Y,R_J9}"}m*_M0 commit;
J`;[SN8h0end;
j'h+I\7k0/

2.每个小时半点执行的例子:

declareITPUB个人空间3\ CA;tC"?o&W}
 v_jobno number;
oY9Po2kT^c5\0beginITPUB个人空间]E&u0? m6Q
 dbms_job.submit(v_jobno, 'null;', trunc(sysdate, 'HH24') + 3/48, 'trunc(sysdate, ''HH24'') + 3/48');ITPUB个人空间p)Z(T IeMf5}
 commit;ITPUB个人空间*e&v2y.|+l \![@c
end;ITPUB个人空间h!U}T`Yx
/

3.每半个小时执行一次的例子:

declare
J!`F*mQ!x&C0 v_jobno number;
'j}.t~5NAKj0beginITPUB个人空间 ik0M!^Es)?M
 dbms_job.submit(v_jobno, 'null;', trunc(sysdate, 'HH24') + FLOOR(TO_NUMBER(TO_CHAR(sysdate, 'MI'))/30)/48, ITPUB个人空间3V8ajX5a^jY(PE
  'trunc(sysdate, ''HH24'') + FLOOR(TO_NUMBER(TO_CHAR(sysdate, ''MI''))/30)/48 + 1/48');
+|;s~,jNB0 commit;ITPUB个人空间;|#U5z^b^(u-V%y,m
end;ITPUB个人空间}.B@?4e$wAo S*ha
/

或者

declare
!v"sl g"t bQ|8U}0 v_jobno number;ITPUB个人空间;V.`)Z$d3{'Bh7}
begin
~n(OKo9Y e0 dbms_job.submit(v_jobno, 'null;', ITPUB个人空间Jk.U%e7K
  trunc(sysdate, 'HH24') + (trunc(sysdate + 1/48, 'HH24') - trunc(sysdate , 'HH24'))/2, ITPUB个人空间n9[,w3i5s
  'trunc(sysdate, ''HH24'') + (trunc(sysdate + 1/48, ''HH24'') - trunc(sysdate , ''HH24''))/2 + 1/48');ITPUB个人空间4YM)WY}dDvq
 commit;
HR[,])t:r c } rf0end;ITPUB个人空间 b*TE @CcYp
/

4.每周一早上10点执行

declareITPUB个人空间9@Zv9Dx.bI!QJ
 v_jobno number;
5k0zk N3U0beginITPUB个人空间["PkBX6^6c
 dbms_job.submit(v_jobno, 'null;', 
P"U0t-|x"tO&H"c0  trunc(sysdate, 'd') + 8 + 10/24, 'trunc(sysdate, ''d'') + 8 + 10/24');ITPUB个人空间 FgQQuA ?c
 commit;ITPUB个人空间 fw~wX IO
end;
"MJ{ ek3U ?0/

 


RS|&}6IfmZ0

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar