/*
使用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 定时执行一个存储过程
测试目的:在表 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去除重复数据常用的方法
2023-12-07 11:11 500SELECT * from ecm_query t whe ... -
mysql得到表名和字段
2018-05-03 10:21 0引用 SELECT table_name FROM INFOR ... -
mysql级联查询
2017-11-30 16:48 1322实现效果 例如: 中国 下的 省 市 县 乡 输入 省的 ... -
oracle恢复删除的数据
2017-09-07 11:16 609分为两种方法:scn和时间戳两种方法恢复。 一、通过scn恢复 ... -
oracle 简单存储 一个表的数据转入另外的表
2017-06-06 19:58 702线损统计导入 select * from xs_gz ... -
Oracle 关联两表写update语句
2017-05-25 09:28 1183两种方法: -- 方法1. UPDATE 表2 SE ... -
oracle 触发器实例
2017-03-29 17:09 713//新增字段更改值 create or replace tri ... -
删除oracle末用户的表数据
2015-03-10 16:01 768begin for cr in (select o.obje ... -
一个字符串是否包含另一个字符串(两个字符串内部已逗号隔开)
2014-08-07 11:39 1061CREATE FUNCTION [dbo].[getStrCo ... -
Sql Server判断是否含有汉字、数字、字母
2014-06-26 09:45 2423/*含有字母或数字*/ select * from Ta ... -
sql 获取字符串长度SQL字符串操作汇总
2014-05-06 21:24 1270将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入 ... -
sqlserver锁表
2014-03-31 10:58 822select request_session_id s ... -
sql实现15位身份证转化为18位身份证
2014-02-19 14:22 1634create function f_CID15to18 ... -
如何利用SQL查询语句从SQLSERVER数据库中导入导出EXCEL表格
2013-10-21 16:26 2225如何利用SQL查询语句从SQLSERVER数据库中导入导出E ... -
如何将sqlserver表中的数据导出sql语句或生成insert into语句
2013-10-21 15:17 1347输入表名,生成插入语句 if exists (select ... -
使用sql语句将一个表中的数据拷贝到另一个表中
2013-08-12 13:59 1050声名:a,b ,都是表 --b表存在(两表结构一样)inser ... -
SQLSERVER游标的使用
2013-02-19 15:41 1113declare @user_name varchar( ... -
Tomcat 内存分配
2011-03-25 17:25 872023233232 -
oracle数据备份和还原
2011-01-21 11:19 935imp jwag/jwag@ORA10 file=d:jw ... -
Oracle存储过程
2011-01-14 13:39 749declare cursor c1 is select * ...
相关推荐
主要内容涵盖随附光盘中的内容介绍、从PL/SQL调用存储过程的方法及其限制条件,以及Oracle内置包的具体功能。 ### 随附光盘内容 #### 1. 安装指南 随附光盘中包含了安装指南,该指南提供了详细的步骤来帮助用户...
- `JFile.java`:这看起来是一个Java文件,可能与PL/SQL交互,使用Java调用PL/SQL存储过程或反之亦然。 - `utlfile.ora`:这可能是UTL_FILE包的配置文件,定义了文件操作的一些设置。 - `cah.pkg`:未提供具体...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,而PL/SQL是Oracle专为数据库操作设计的一种过程化编程语言。它结合了SQL查询语句和传统的编程元素,如控制结构、变量、过程等,使得数据库管理和应用程序...
7. **作业调度**:你可以设置定时任务,执行脚本或者PL/SQL程序块,实现自动化的工作流程。 8. **连接管理**:支持多个Oracle数据库实例的连接,可以轻松切换和管理不同的数据库环境。 9. **用户界面**:PL/SQL ...
在Oracle数据库环境中,PL/SQL是一种过程化语言,用于编写存储过程、函数、触发器等。而“ExcelDocumentType”可能指的是一个特定的数据类型或者接口,用于在PL/SQL中操作Microsoft Excel文件。 描述中虽然没有提供...
"Oracle.PL-SQL.Programming,4th.Ed.chm"是一个关于Oracle PL/SQL编程的第四版电子书,采用CHM(Microsoft编写的帮助文档)格式。该资源来自O'Reilly出版社,它以详尽和深入的方式介绍了Oracle数据库的PL/SQL编程...
在使用PL/SQL Developer时,开发者需要注意的是,安装过程中可能需要配置Oracle客户端和TNS监听,确保能正确连接到数据库服务器。此外,为了保持数据库的安全性,应遵循最佳实践,如定期备份、限制权限、加密敏感...
**PL/SQL Developer** 是一款专为 Oracle 数据库开发人员设计的强大工具,旨在帮助他们高效地编写、调试及优化 PL/SQL 代码。本指南将详细介绍 **PL/SQL Developer 11** 的主要功能与使用方法。 #### 二、安装 ####...
PL/SQL是Oracle数据库系统中的一个关键组成部分,全称为Procedural Language/Structured Query Language,它是SQL的扩展,增加了过程式编程的特性,使得数据库管理、数据操作和应用程序开发更为高效和灵活。PL/SQL与...
- **PL/SQL Developer**是一款专为Oracle数据库设计的强大集成开发环境(IDE),它为开发人员提供了一个全面且易于使用的工具来编写、调试和优化PL/SQL代码。 - 该软件支持多种版本的Oracle数据库,并具有丰富的功能...
- **XMLTYPE**: Oracle 数据库中的一个数据类型,用于存储 XML 文档。 - **编辑**: 支持直接在 PL/SQL Developer 中查看和编辑 XMLTYPE 数据。 ##### 6.8 直接查询导出 - **导出**: 将查询结果导出为文件。 - **...
Oracle 定时执行存储过程 ... Oracle 定时执行存储过程提供了一个灵活的方式来执行存储过程,包括更新工作状态、更改工作设置、设置重执行频度、提交工作、设定执行时间、删除工作和立即执行工作等多种操作。
- **创建程序**:在PL/SQL Developer中新建一个PL/SQL程序,可以是存储过程、函数或其他类型的程序单元。 - **保存程序**:保存程序以便后续使用或修改,支持多种文件格式。 - **修改程序**:对已存在的程序进行编辑...
这款软件是针对Oracle数据库的,因此,对于拥有大量数据或者需要高性能数据库操作的用户来说,64位PL/SQL Developer是一个理想的选择。 首先,我们要理解64位系统的优势。64位系统能够处理更大的内存地址空间,理论...
PL/SQL是Oracle数据库的扩展SQL语言,用于创建存储过程、函数、触发器和包等数据库对象。 1. **PL/SQL语法支持**:PL/SQL Developer支持完整的PL/SQL语法高亮和自动完成,使得编写PL/SQL代码更为高效。它能智能识别...
1. **代码编辑器**:PL/SQL Developer提供了一个智能的代码编辑器,支持语法高亮、自动完成、代码折叠、错误检查等功能,帮助开发者快速编写和修改PL/SQL代码。它还能自动生成常见的PL/SQL块,如过程、函数、触发器...
PL/SQL是Oracle数据库系统中的一个核心组件,全称为Procedural Language/SQL,它将SQL(结构化查询语言)与过程式编程语言相结合,为数据库开发者和管理员提供了强大的数据处理和管理能力。"PL/SQL 1001原版"可能是...
这个示例将创建一个名为 test_job 的 job 定时任务执行,每分钟执行一次 test_procedure 存储过程。 五、结论 在本文中,我们详细介绍了如何使用 plsql 创建存储过程并创建 job 定时任务执行。在 Oracle 中,plsql...