Oracle定时器.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle定时器

Oracle定时器 Oracle定时器语法 declare jobno number; begin dbms_job.submit job out binary_integer, -- 任务编号 what in varchar2, -- 任务过程 next_date in date, -- 任务执行时间 interval in varchar2 -- 任务执行时间间隔 ; commit; end; 关于interval的设置,参考以下几个例子: -- 1.每分钟执行 trunc sysdate,mi +1/ 24*60 -- 2.每天定时执行 -- 例如:每天的凌晨2点执行 trunc sysdate +1+ 2/24 -- 3.每周定时执行 -- 例如:每周一凌晨2点执行 trunc next_day sysdate,2 + 2/24 -- 4.每月定时执行 -- 例如:每月1日凌晨2点执行 trunc last_day sysdate +1+ 2/24 -- 5.每季度定时执行 -- 例如每季度的第一天凌晨2点执行 trunc add_months sysdate,3 ,Q + 2/24 -- 6.每半年定时执行 -- 例如:每年7月1日和1月1日凌晨2点 add_months trunc sysdate,yyyy ,6 + 2/24 -- 7.每年定时执行 -- 每年1月1日凌晨2点执行 add_months trunc sysdate,yyyy ,12 + 2/24 Oracle定时器实例 -- 1.创建表 create table zc_test name varchar2 50 ; -- 2.创建存储过程 create or replace procedure proc_zc_test p_name in varchar2 -- 姓名 is begin insert into zc_test name values p_name || _ ||to_char sysdate, yyyy-mm-dd hh24:mi:ss ; commit; end; /** -- 测试 begin proc_zc_test zc ; end; -- select * from zc_test; */ -- 3.创建定时器 -- 例如:每分钟执行 declare job_proc_zc_test number; begin dbms_job.submit job_proc_zc_test, proc_zc_test zc ;, sysdate, trunc sysdate,mi +1/ 24*60 ; commit; end; -- 4.查看定时器任务 select * from user_jobs; /** -- 5.操作定时器 0:停止定时器,1:启动定时器,2:删除定时器 */ create or replace procedure proc_zc_do_jobs p_type in number, -- 操作类型 p_job in number -- 定时器ID is v_rows number : 0; -- 记录条数,设置默认值 begin -- 根据定时器ID查询定时器个数 select count * into v_rows from user_jobs where job p_job; if v_rows 0 then begin if p_type 0 then begin dbms_output.put_line 当前为停止定时器 操作 ; dbms_job.broken p_job,sys.diutil.int_to_bool 1 ; dbms_output.put_line ID为 || p_job || 的定时器 停止成功 ; end; elsif p_type 1 then begin dbms_output.put_line 当前为启动定时器 操作 ; dbms_job.run p_job ; dbms_output.put_line ID为 || p_job || 的定时器 启动成功 ; end; elsif p_type 2 then begin dbms_output.put_line 当前为 删除定时器 操作 ; dbms_job.remove p_job ; commit; dbms_output.put_line ID为 || p_job || 的定时器 删除成功 ; end; end if; end; else begin dbms_outpu

文档评论(0)

wuyuetian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档