Oracle定时执行存储过程(转)-阿里云开发者社区

开发者社区> developerguy> 正文

Oracle定时执行存储过程(转)

简介: 定时执行存储过程在平时开发中经常会用到,年前的时候自己也做了一个,由于时间关系一直没能记录,现记录下来。       首先用一个完整的例子来实现定时执行存储过程。 任务目标:每小时向test表中插入一条数据 实现方案:     1.
+关注继续查看

 

定时执行存储过程在平时开发中经常会用到,年前的时候自己也做了一个,由于时间关系一直没能记录,现记录下来。 
   
   首先用一个完整的例子来实现定时执行存储过程。 

任务目标:每小时向test表中插入一条数据 

实现方案: 
    1.通过 oracle 中 dbms_job 完成存储过程的定时调用 
    2.在存储过程中完成相应的逻辑操作 

实现步骤: 
  1.创建一个测试表 
create table test(dTime date); 
  
  2.创建一个存储过程 
create or replace procedure p_test as 
begin 
insert into test values(sysdate); 
end; 

  3.创建执行计划:每小时运行一次存储过程 
Declare 
  i Integer; 
Begin 
   dbms_job.submit(i,'p_test;',Sysdate,'sysdate+1/24'); 
end; 

  4.运行执行计划 
Declare 
  jobno Integer; 
Begin 
-- 查找计划号 
Select t.JOB into jobno From User_Jobs t ; 
-- 运行制定的执行计划 
dbms_job.run(jobno); 
end; 

  5.查看任务队列情况 
select job,next_date,next_sec,failures,broken from user_jobs; 

  6.查看任务执行情况 
select to_char(dTime ,'yyyy/mm/dd hh24:mi:ss') from test order By dTime; 

  7.停止执行计划 
Declare 
  jobno Integer; 
Begin 
  -- 查找计划号 
  Select t.JOB into jobno From User_Jobs t ; 
  -- 停止计划,不再继续执行 
  --dbms_job.broken(jobno,True); 
  -- 停止计划,并在两分钟后继续执行 
  dbms_job.broken(jobno,True,Sysdate+(2/24/60)); 
end; 

  8.删除执行计划 
Declare 
  jobno Integer; 
Begin 
  -- 查找计划号 
  Select t.JOB into jobno From User_Jobs t ; 
  dbms_job.remove(jobno); 
end; 

  9.修改执行计划 
Declare 
  jobno Integer; 
Begin 
  -- 查找计划号 
  Select t.JOB into jobno From User_Jobs t ; 
  -- 修改为:每分钟执行一次 
  dbms_job.interval(jobno, 'sysdate+1/(24*60)'); 
end; 

参数说明: 
DBMS_JOB.SUBMIT(jobno =>jobID,//对应的唯一id(jobID <-> jobName)唯一映射 
               procedureName=> 'your_procedure;',  //调用的存储过程名称 
                 next_date => sysdate,   //下次执行的时间(第一次执行的时间) 
                 interval => 'sysdate+1/1440');  //每次执行间隔的时间 

以上就是定时执行存储过程的全部内容,留待后用吧。

 

http://lafecat.iteye.com/blog/2186568

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Elasticsearch-doc基本操作
document是es中比较重要的一个概念,相当于数据库中的行数据,es可以对document进行操作,主要包括新增doc、删除doc、更新doc、更新doc的某个部分等。
12 0
PHP与Mysql环境搭建
小白还是使用小皮面板或者宝塔面板之类的吧,当然你也可以自己去搭建一个环境,笔者学习的环境是小皮面板:https://www.xp.cn/
8 0
案例分享——华媒传播|学习笔记
快速学习 案例分享——华媒传播
6 0
案例分享——趣拍|学习笔记
快速学习 案例分享——趣拍
9 0
阿里云云服务器 ECS 介绍|学习笔记
快速学习 阿里云云服务器 ECS 介绍
5 0
阿里云智能制造解决方案:从中国制造到中国智造|学习笔记
快速学习 阿里云智能制造解决方案:从中国制造到中国智造
9 0
ssm 整合| 学习笔记
快速学习 ssm 整合
13 0
案例分享——钉钉|学习笔记
快速学习 案例分享——钉钉
9 0
spring 整合 mybatis 03| 学习笔记
快速学习 spring 整合 mybatis 03
5 0
Spring 整合 mybatis04| 学习笔记
快速学习 Spring 整合 mybatis04
6 0
+关注
developerguy
A code cleanliness code farmers, A programmer concentrate on elegant design, A want to do with the product architect
1663
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载