引用
, T5 M9 \- `( L5 g N% R+ ` SQL> startup nomount 5 L, n. b0 V& _$ R9 g" U& b
ORACLE instance started. 0 z4 P. c' ?2 n% ?
Total System Global Area 1125193868 bytes
* z( D; E0 L& S3 s Fixed Size 452748 bytes ! _! O4 \2 {- x9 T" Z$ }
Variable Size 335544320 bytes
/ r3 F* P. q% }; D0 ~% B0 o; f Database Buffers 788529152 bytes # Z% @4 }% [* Y$ u: ]. ]
Redo Buffers 667648 bytes
4 [& m) I; f- k& ]# `/ q6 ?假设你的存储过程名为PROC_RAIN_JM
) @/ T3 J0 X0 T0 v( [' w 再写一个存储过程名为PROC_JOB_RAIN_JM
, L( }3 M, Y4 L' X8 @, [ 内容是:
: k3 x5 d4 }0 ^- V Create Or Replace Procedure PROC_JOB_RAIN_JM
6 x! s. v+ r4 g3 }9 T Is
$ T7 x: R; r Y: A% s' Z5 @/ v, ~$ r7 ~ li_jobno Number;
) b r5 E1 l9 [+ `! H, H Begin
. d" T3 D6 B& q9 x% D DBMS_JOB.SUBMIT(li_jobno,’PROC_RAIN_JM;’,SYSDATE,’TRUNC(SYSDATE + 1)’);
' N6 s1 _; B& ~% v- H" i+ | End;
- ^+ A( H! M& G6 v0 m, b u 最后那一项可以参考如下: 2 |8 N6 N. [& j. ?: L' {( g
每天午夜12点 ’TRUNC(SYSDATE + 1)’
( K( u1 \: w$ f& { 每天早上8点30分 ’TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)’ , w. e; }9 Q, }. t3 W- \. P
每星期二中午12点 ’NEXT_DAY(TRUNC(SYSDATE ), ’’TUESDAY’’ ) + 12/24’
) l) ?' ]9 B# S6 m; c' l& d7 a 每个月第一天的午夜12点 ’TRUNC(LAST_DAY(SYSDATE ) + 1)’
3 @+ x$ M' W. u R! k$ P 每个季度最后一天的晚上11点 ’TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ’Q’ ) -1/24’ : m! M: p: A8 M3 [" k' Y
每星期六和日早上6点10分 ’TRUNC(LEAST(NEXT_DAY(SYSDATE, ’’SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6*60+10)/(24*60)’ # n/ ^! ?0 K, |: ~4 ]1 S& V
其中li_jobno是它的ID,可以通过这个ID停掉这个任务,最后想说的是不要执行多次,你可以在里面管理起来,发现已经运行了就不SUBMIT
8 R1 f/ d. z9 ~2 Y$ l/ w" Z 每天运行一次 ’SYSDATE + 1’
9 x- G1 n; k. n# H1 `. ?' j 每小时运行一次 ’SYSDATE + 1/24’ ( O" V1 y+ h! d- o
每10分钟运行一次 ’SYSDATE + 10/(60*24)’ 4 B/ x' }! W. z& k
每30秒运行一次 ’SYSDATE + 30/(60*24*60)’
4 S& ]4 s' }0 ~6 {8 J 每隔一星期运行一次 ’SYSDATE + 7’ 1 d) w H- N" {$ Y; I; l
不再运行该任务并删除它 NULL 5 [5 \- y; d. D. s; o8 U. h
每年1月1号零时 trunc(last_day(to_date(extract(year from sysdate)||’12’||’01’,’yyyy-mm-dd’))+1) |