经常在SQL Server上建树功课去按时执行某些使命,在Oracle下则一般都是经由过程编码的体例,经由过程项目自带的打算使命框架去挪用存储过程。今天才发现,原本Oracle下建树一个打算使命要比SQL Server简单的多。0 g7 @' z; Q) u V7 r* o2 j
1、建树打算使命:# I2 v8 @8 o% G
Sql代码
3 e; k5 `* I" R# q3 d( n4 P$ ~# I X NUMBER;7 I. m- l. B9 m3 O. H5 _
GIN
* N2 ^: b6 s# i( G SYS.DBMS_JOB.SUBMIT(job => X,4 g8 C* {. Z% S9 O# R, ^: L
what => ’PROC_YKTSJTB;’,--存储过程名称" |5 o7 R# ?" q) k# X2 {
next_date => trunc(sysdate+5/1440,’MI’),--下次执行时刻
- M3 x& X- J3 n0 k/ O' u interval => ’trunc(sysdate+1440/1440,’’MI’’)’,--距离时刻2 N- H; m% Y8 p( I1 Z7 N' [
no_parse => FALSE);
* A! ]* l1 g( v& D SYS.DBMS_OUTPUT.PUT_LINE(’Job Number is: ’ || to_char(x));
, I, s0 n, R* _& u, {1 O0 }' ~ b9 z COMMIT;
) P$ k" p, _- U$ u7 A: e D;
& i+ q; {. P) l0 o; | X NUMBER;
! x& G/ i4 w6 t& P* p BEGIN! A& @8 \" ]" @, e- f- L) N3 V1 g
SYS.DBMS_JOB.SUBMIT(job => X,
- C+ T( t$ F* w what => ’PROC_YKTSJTB;’,--存储过程名称
5 j" c, \9 i& a next_date => trunc(sysdate+5/1440,’MI’),--下次执行时刻
; A! {: W+ l& l interval => ’trunc(sysdate+1440/1440,’’MI’’)’,--距离时刻; Z9 q+ z) [% {
no_parse => FALSE);
5 S+ S3 \; m1 F2 Q n9 J SYS.DBMS_OUTPUT.PUT_LINE(’Job Number is: ’ || to_char(x));
: c, T8 C8 @" \ COMMIT;* u5 B& P( h5 M: C# V
END;& {- Z' W. N2 y9 [5 g
以上首要注重三个参数:
4 n9 q# F7 q: v& m) o what :需要打算使命执行的动作;: |. O1 c3 f8 P" r; u* Y: _' t
next_date:下次打算使命执行的时刻,具体时刻可以按照oracle的trunc机关;5 @3 M) M7 x1 ?/ R8 V4 x
interval:打算使命的执行周期;# x9 b7 g/ C9 E4 g2 k' ]
2、打算使命执行情形监控
% M" k3 n: g1 A+ K Sql代码
" ~' p# d9 B- T* c select * from user_jobs;--查看调剂使命
$ i" j) d+ i' y* { select * from dba_jobs_running;--查看正在执行的调剂使命
& Q2 \2 A5 G3 E5 {( v& Y- l7 r select * from dba_jobs;--查看执行完的调剂使命 |