`

使用oracle 的 PL/Sql 定时执行一个存储过程

 
阅读更多
/*
使用oracle 的 PL/Sql 定时执行一个存储过程

测试目的:在表 tab 中间隔一分钟插入一条数据

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

脚本说名:
以下代码为 dbms_job 操作的基本写法,
其中不包含各个系统函数参数说明,
如需要了解“系统函数参数说明”请另行在网上查找  

注:
1.其中的停止运行后继续执行的方法还有待测试  
2.开始运行一个计划时,计划内的存储过程将立刻执行一次
*/

--1.创建一个测试表
create table tab(dtime date);
Select * From tab;

--2.创建一个存储过程
create or replace procedure p_test as
begin
insert into tab values(sysdate);
end;

--3.创建一个执行计划:每天1440分钟,即一分钟运行存储过程一次
Declare
  i Integer;
Begin
   dbms_job.submit(i,'p_test;',Sysdate,'sysdate+1/1440');
end;

--4.查看已经创建的所有执行计划
Select * From user_jobs;

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

--6.查看计划的运行结果
  select
    t.dtime
    --to_char(t.dtime,'yyyy-mm-dd hh24:mi:ss')
  from tab t
  Order By t.dtime;

-- 查出测试表内容
   Delete tab t;

--7.修改执行计划(修改执行的间隔时间)
/*
sysdate+1              表示每天执行一次
sysdate+1/24           表示每小时执行一次
sysdate+1/(24*60)      表示每分钟执行一次
sysdate+1/(24*60*60)   表示每秒执行一次
*/
Declare
  job_num Integer;
Begin
  -- 查找计划号
  Select t.JOB Into job_num From User_Jobs t ;
  -- 修改为:每天执行一次
  dbms_job.interval(job_num, 'sysdate+1/(24*60)');
end;

--8.停止一个执行计划
/*
Sysdate+(5) 加五天,
Sysdate+(5/24) 加五时,
Sysdate+(5/24/60) 加五分,
Sysdate+(5/24/60/60) 加五秒
*/
Declare
  job_num Integer;
Begin
  -- 查找计划号
  Select t.JOB Into job_num From User_Jobs t ;
  -- 停止计划,不在执行
  --dbms_job.broken(job_num,True);
  -- 停止计划,并在两分钟后继续执行
  dbms_job.broken(job_num,True,Sysdate+(2/24/60));
end;

--9.删除执行计划Declare
Declare
  job_num Integer;
Begin
  -- 查找计划号
  Select t.JOB Into job_num From User_Jobs t ;
  dbms_job.remove(job_num);
end;
例子:
create or replace procedure jobquery as 
begin  
for cr in (select * from jccb.e_mp_cur_curve) loop
dbms_output.put_line(cr.ID);
end loop;
end ;

Declare   job_excute Integer;
Begin
   dbms_job.submit(job_excute,'jccb.jobquery;',Sysdate,'sysdate+1/144');
end;

Select * From user_jobs;






  

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





分享到:
评论

相关推荐

    oracle pl/sql programming

    主要内容涵盖随附光盘中的内容介绍、从PL/SQL调用存储过程的方法及其限制条件,以及Oracle内置包的具体功能。 ### 随附光盘内容 #### 1. 安装指南 随附光盘中包含了安装指南,该指南提供了详细的步骤来帮助用户...

    PL/SQL examples

    - `JFile.java`:这看起来是一个Java文件,可能与PL/SQL交互,使用Java调用PL/SQL存储过程或反之亦然。 - `utlfile.ora`:这可能是UTL_FILE包的配置文件,定义了文件操作的一些设置。 - `cah.pkg`:未提供具体...

    pl/sql_Oracle

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,而PL/SQL是Oracle专为数据库操作设计的一种过程化编程语言。它结合了SQL查询语句和传统的编程元素,如控制结构、变量、过程等,使得数据库管理和应用程序...

    pl/sql开发工具

    7. **作业调度**:你可以设置定时任务,执行脚本或者PL/SQL程序块,实现自动化的工作流程。 8. **连接管理**:支持多个Oracle数据库实例的连接,可以轻松切换和管理不同的数据库环境。 9. **用户界面**:PL/SQL ...

    PL/SQL ExcelDocumentType

    在Oracle数据库环境中,PL/SQL是一种过程化语言,用于编写存储过程、函数、触发器等。而“ExcelDocumentType”可能指的是一个特定的数据类型或者接口,用于在PL/SQL中操作Microsoft Excel文件。 描述中虽然没有提供...

    Oracle.PL-SQL.Programming,4th.Ed.chm

    "Oracle.PL-SQL.Programming,4th.Ed.chm"是一个关于Oracle PL/SQL编程的第四版电子书,采用CHM(Microsoft编写的帮助文档)格式。该资源来自O'Reilly出版社,它以详尽和深入的方式介绍了Oracle数据库的PL/SQL编程...

    pl/sql 64位 11g

    在使用PL/SQL Developer时,开发者需要注意的是,安装过程中可能需要配置Oracle客户端和TNS监听,确保能正确连接到数据库服务器。此外,为了保持数据库的安全性,应遵循最佳实践,如定期备份、限制权限、加密敏感...

    PL/SQL Developer 11用户指南

    **PL/SQL Developer** 是一款专为 Oracle 数据库开发人员设计的强大工具,旨在帮助他们高效地编写、调试及优化 PL/SQL 代码。本指南将详细介绍 **PL/SQL Developer 11** 的主要功能与使用方法。 #### 二、安装 ####...

    PL/SQL oracle工具

    PL/SQL是Oracle数据库系统中的一个关键组成部分,全称为Procedural Language/Structured Query Language,它是SQL的扩展,增加了过程式编程的特性,使得数据库管理、数据操作和应用程序开发更为高效和灵活。PL/SQL与...

    oracle pl/s手册

    - **PL/SQL Developer**是一款专为Oracle数据库设计的强大集成开发环境(IDE),它为开发人员提供了一个全面且易于使用的工具来编写、调试和优化PL/SQL代码。 - 该软件支持多种版本的Oracle数据库,并具有丰富的功能...

    PL/SQL Developer 7.0

    - **XMLTYPE**: Oracle 数据库中的一个数据类型,用于存储 XML 文档。 - **编辑**: 支持直接在 PL/SQL Developer 中查看和编辑 XMLTYPE 数据。 ##### 6.8 直接查询导出 - **导出**: 将查询结果导出为文件。 - **...

    Oracle定时执行存储过程

    Oracle 定时执行存储过程 ... Oracle 定时执行存储过程提供了一个灵活的方式来执行存储过程,包括更新工作状态、更改工作设置、设置重执行频度、提交工作、设定执行时间、删除工作和立即执行工作等多种操作。

    PL/SQL Developer 中文帮助文档

    - **创建程序**:在PL/SQL Developer中新建一个PL/SQL程序,可以是存储过程、函数或其他类型的程序单元。 - **保存程序**:保存程序以便后续使用或修改,支持多种文件格式。 - **修改程序**:对已存在的程序进行编辑...

    64位PL*SQL Developer

    这款软件是针对Oracle数据库的,因此,对于拥有大量数据或者需要高性能数据库操作的用户来说,64位PL/SQL Developer是一个理想的选择。 首先,我们要理解64位系统的优势。64位系统能够处理更大的内存地址空间,理论...

    pl/sql Developer

    PL/SQL是Oracle数据库的扩展SQL语言,用于创建存储过程、函数、触发器和包等数据库对象。 1. **PL/SQL语法支持**:PL/SQL Developer支持完整的PL/SQL语法高亮和自动完成,使得编写PL/SQL代码更为高效。它能智能识别...

    PL/SQL Developer

    1. **代码编辑器**:PL/SQL Developer提供了一个智能的代码编辑器,支持语法高亮、自动完成、代码折叠、错误检查等功能,帮助开发者快速编写和修改PL/SQL代码。它还能自动生成常见的PL/SQL块,如过程、函数、触发器...

    pl/sql 1001原版

    PL/SQL是Oracle数据库系统中的一个核心组件,全称为Procedural Language/SQL,它将SQL(结构化查询语言)与过程式编程语言相结合,为数据库开发者和管理员提供了强大的数据处理和管理能力。"PL/SQL 1001原版"可能是...

    plsql创建存储过程并创建job定时任务执行-详细笔记文档总结

    这个示例将创建一个名为 test_job 的 job 定时任务执行,每分钟执行一次 test_procedure 存储过程。 五、结论 在本文中,我们详细介绍了如何使用 plsql 创建存储过程并创建 job 定时任务执行。在 Oracle 中,plsql...

Global site tag (gtag.js) - Google Analytics