ORACLE JOB间隔时间参考

假设你的存储过程名为PROC_RAIN_JM 
再写一个存储过程名为PROC_JOB_RAIN_JM 
内容是: 
Java代码  收藏代码
  1. Create Or Replace Procedure PROC_JOB_RAIN_JM  
  2. Is  
  3. li_jobno         Number;  
  4.   
  5. Begin  
  6. DBMS_JOB.SUBMIT(li_jobno,'PROC_RAIN_JM;',SYSDATE,'TRUNC(SYSDATE + 1)');   
  7. End;  

提交job语法: 
Java代码  收藏代码
  1. begin  
  2. sys.dbms_job.submit(job => :job,  
  3.                       what => 'P_CLEAR_PACKBAL;',  
  4.                       next_date => to_date('04-08-2008 05:44:09', 'dd-mm-yyyy hh24:mi:ss'),  
  5.                       interval => 'sysdate+ 1/360');  
  6. commit;  
  7. end;  

------------------------- 
创建JOB 
Java代码  收藏代码
  1. variable jobno number;  
  2. begin  
  3. dbms_job.submit(:jobno, 'P_CRED_PLAN;',SYSDATE,'SYSDATE+1/2880',TRUE);  
  4. commit;  

运行JOB 
Java代码  收藏代码
  1. begin  
  2.     dbms_job.run(:job1);  
  3. end;  

删除JOB 
Java代码  收藏代码
  1. begin  
  2.     dbms_job.remove(:job1);  
  3. 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记。 


转载于 http://virgoooos.iteye.com/blog/342421 


posted on 2012-05-18 12:24 鲁胜迪 阅读(1301) 评论(0)  编辑  收藏 所属分类: 一点点


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(4)

随笔分类

随笔档案

文章分类

新闻分类

搜索

最新评论

阅读排行榜

评论排行榜