PL/SQL实现Oracle数据库任务调度
选择自 softj 的 Blog
关键字
PL/SQL实现Oracle数据库任务调度
出处
PL/SQL实现Oracle数据库任务调度
关键词:数据恢复,任务调度,ORACLE,PL/SQL
在数据库操作中时常会有这样的情况发生,由于一时的疏忽而误删或误改了一些重要的数据,另外还有一些重要的任务需要周期性地运行。显然,前一类问题主要是数据备份与恢复方面的,而后一类则主要是系统的任务调度。本文将针对这两类问题,从应用程序开发角度给出一个解决方法。
一.技术基础
由于本文是使用PL/SQL作为开发平台来提供解决方案,所以首先了解相关的背景知识。
PL/SQL本身只是作为SQL语句的一个补充,通过引入过程化的概念来增强数据库处理能力。然而,相对于C,C++,JAVA等过程化语言来说,PL/SQL的处理功能依然不够强大。为此,Oracle数据库提供了大量的应用程序开发包,来增强应用程序开发能力。根据本文的主题,介绍如下两个开发包:DBMS_FLASHBACK和DBMS_JOB。
1. DBMS_FLASHBACK包主要是用来进行倒叙查询使用的,即通过设置查询时间来确定该时刻下的查询结果。一般情况下,我们平时使用的查询是查询当前时间(sysdate)下的数据。使用DBMS_FLASHBACK包就可以查询以前数据的状态,这一功能对于误处理的情形而言就显得极为重要。下面是该包中的两个主要函数介绍:
·Enable与disable:分别是启动和关闭倒叙查询功能。应该注意的是,每次启动倒叙查询之前应首先关闭倒叙模式。
·Enable_at_time:设置查询的时间点,它是以当前时间为起点进行设置的。
2. DBMS_JOB包是用来对PL/SQL块进行调度的实用包,它允许PL/SQL块在指定的时间内自动运行,类似于VC中的Settimer这样的定时器。为便于该包的运行,需要首先设置两个init.ora参数:
·JOB_QUEUE_PROCESS指定启动的后台处理数。如果它是0或没有被设置,将没有后台处理进入作业,它们也就不会运行。
·JOB_QUEUE_INTERVAL以秒为单位,指定每一个过程在检查新的作业前等待的时间。在JOB_QUEUE_INTERVA所指定的时间内,一个作业最多只能运行一次。
设置好这两个参数后,就可对程序进行调度了,该包主要使用SUBMIT函数进行调度,该函数的原型为:
submit(返回的作业号,程序过程名,sysdate,下次运行的时间);
二.数据恢复
数据恢复是数据库本身一个极其重要的功能,通常重�
相关文档:
一、循环
create table tb(
col1 varchar(1),
col2 varchar(2)
)
insert tb(col1,col2)values('0','0')
go 10000000
二、数据合并
if object_id('[order]') is not null drop table [order]
go
create table [order]([orderid] int,[ordertype] varchar(1))
insert [ord ......
oracle变量类型
标量类型
varchar2(n) 用于定义可变长度的字符串 n用于指定字符串的最大长度 其最大值为32767字节 必须指定n
char(n) 用于定义固定长度的字符串 其中n用于指定字符串的最大长度,其最大值为32767 如果不指定n 默认是1
number(p,s)该数据类型用于定义固定长度的整数和浮点 ......
简单描述一下在windows的同一用户下,安装Oracle的9i、10g和11g的方法。
Oracle在windows平台下的安装是所有平台中最简单的,基本上不需要进行任何额外的处理就可以成功的安装,可以说没有什么技术含量。
不过在同一台机器的同一个用户上同时安装两个不同版本的数据库就需要一定的技巧了。这里简单描述一下在同时 ......
(1) varchar2(n):该数据类型用于定义可变长度的字符串,其中 n 用于指定字符串的最大长度,其最大值为 32767 字节。当使用该数据类型定义变量是,必须注意,在PL/SQL块中使用该数据类型操纵varchar2表列时,其数值的长度不应该超过 4000 字节。
......
以下是在后台更新易拓ERP数据库时遇到的一个问题:
1.在DB14数据库中将料件号P44开头,并且品名为"塑料袋"的料件改为消耗性料件.
这个简单: UPDATE DB14.ima_file SET ima70 = ‘Y’ WHERE ima01 like ‘P44%’ AND ima0 ......