- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle中job的实例分析
Oracle定时器(Job)各时间段写法汇总
对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下:
在总结之前,先把Job的参数一一说明一下:
job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作;
what参数是将被执行的PL/SQL代码块;
next_date参数指识何时将运行这个工作。写Job的时候可以不指定该值;
interval参数何时这个工作将被重执行。
其中Interval这个值是决定Job何时,被重新执行的关键。
例如:有存储过程 p_dosomethings,需要被不同的时间间隔执行。
1declare???2牋 jobno number;牋?3 INCLUDEPICTURE /Images/OutliningIndicators/None.gif \* MERGEFORMATINET begin牋?4 牋 dbms_job.submit(5 INCLUDEPICTURE /Images/OutliningIndicators/None.gif \* MERGEFORMATINET 牋牋 jobno,6 INCLUDEPICTURE /Images/OutliningIndicators/None.gif \* MERGEFORMATINET ????p_dosomething;,??--what7???? to_date(20090101020000,yyyy-mm-dd hh24:mi:ss),--next_date,可以不填8????Interval时间字符串--interval,关键设置9?? );???10牋 commit;牋?11 INCLUDEPICTURE /Images/OutliningIndicators/None.gif \* MERGEFORMATINET end; 12
1、 每分钟执行
Interval = TRUNC(sysdate,’mi’) + 1 / (24*60)
2、 每天定时执行
例如:每天的凌晨2点执行
Interval = TRUNC(sysdate) + 1 +2 / 24
3、 每周定时执行
例如:每周一凌晨2点执行
Interval = TRUNC(next_day(sysdate,星期一))+2/24
4、 每月定时执行
例如:每月1日凌晨2点执行
Interval =TRUNC(LAST_DAY(SYSDATE))+1+2/24
5、 每季度定时执行
例如每季度的第一天凌晨2点执行
Interval = TRUNC(ADD_MONTHS(SYSDATE,3),Q) + 2/24
6、 每半年定时执行
例如:每年7月1日和1月1日凌晨2点
Interval = ADD_MONTHS(trunc(sysdate,yyyy),6)+2/24
7、 每年定时执行
例如:每年1月1日凌晨2点执行
Interval =ADD_MONTHS(trunc(sysdate,yyyy),6)+2/24
oracle job
下午mumu问我,如何终止一个正在执行的job,我当时也没有想起来(或者说,以前都是run,而没有romove过),所以就上网找了一下,感觉下面写的还不错,就收了起来,呵呵~~~~
ORACLE中JOB的应用1、创建存储过程create or replace procedure *pro_nameasbegininsert into agri_exhibition_basecur (messid,title,type,pub_date)
select id,title,sort,pub_date
from agri_message
where (trunc(sysdate-pub_date)=0 and rownum6) and sort=供 ;insert into agri_exhibition_basecur (messid,title,type,pub_date)
select id,title,sort,pub_date
from agri_message where (trunc(sysdate-pub_date)=0 and rownum6) and sort=求 ;end;/2、创建JOBvariable jobdxm number;begin dbms_job.submit(:jobdxm,exhi_pro_dxm;,sysdate,t
文档评论(0)