rm.pro_hrm_emp_info_job过程8 V3 H7 w" u5 ?' f0 ~ D, Y
需要每天都更新,所以先创建个procedure,再创建个job就可以实现定时更新0 V6 G8 ~' O% t4 }' ]; N
create or replace procedure rm.pro_hrm_emp_info_job is
: m# H( k% _/ E! M( {4 x zm3 J7 }+ ^- U; u: P$ I# }9 A0 K; i
begin8 i" U( e# e; N# s, r, V" V7 F7 j
update rm.hrm_emp_info
3 h4 w, k4 ]# W7 W set ages = to_number(TRUNC(nvl((sysdate brith_date) / 365, 0))),
( m2 Z9 j* N3 X leng_serv = to_number(TRUNC(nvl((sysdate work_date) / 365, 0))),8 n; y& x; s/ {& x4 B$ {) g( k
ins_len_ser = to_number(TRUNC(nvl((sysdate ente_appe_date) / 365,
9 t8 ]6 J! H o: \ B A. G/ h 0)));
+ Z! V8 F" ]" U4 U5 s commit;
) W& g! V/ `+ W: C3 O7 ]- U! R end pro_hrm_emp_info_job;
# ^! Z6 a2 G3 [, c2 k! h( Y6 \ 相应的job
9 A. d# q2 `: ^# A6 t+ t4 O$ A7 l declare
4 t5 T4 r- a; v jobno number;. R/ F% W6 z8 }" X$ Q9 b
begin
3 t( {7 |. S1 K1 C0 R% t; j0 T dbms_job.submit(jobno,’rm.pro_hrm_emp_info_job;’,trunc(sysdate),’trunc(sysdate)+1’);每天零点更新
) b% G F8 w4 q7 F$ \6 N commit;1 i' @. F$ O! M) ^- @) Y, x4 m/ N. B; c
end;
) c8 m3 E/ t# T) u /2 S8 K# r4 ^, {& v
分解下job d0 q# ^1 G" N) b9 ^" \
dbms_job.submit(jobno, job号,由sys.jobseq生成
; U$ q4 V4 l# ?9 ^+ G3 }3 Y ’rm.pro_hrm_emp_info_job;’, 要执行的procedure
+ Q5 P& T l, G; E8 L trunc(sysdate), 下次要执行的时间
4 f: o' ~8 f3 _. M7 J ’trunc(sysdate)+1’); 每次间隔的时间,此处的1标识一天 也可1/1440每一分钟执行一次! T4 Y( {0 z( G5 g# a
查看
' v8 ? V' R3 q select * from sys.user_jobs;; v1 [6 q! V+ N! d& H% o: \0 @
其中创建的jobno(任务号)由sys.jobseq序列生成
! c$ S& m* {/ p8 Y3 d 主由packages中的sys.dbms_job执行
( }* }9 I; d1 r \ 细节可以查看sys.dbms_job包内容。 |