Oracle约束管理脚本

作为一个Oracle数据库管理员,会碰到这样的数据库管理需求,停止或者打开当前用户(模式)下所有表的约束条件和触发器。这在数据库的合并以及对数据库系统的代码表中某些代码的修改时需要做的工作之一。

我们来看这样一种实际数据库工作业务需求,这在目前的许多应用中是非常实际的。某地区银行数据,目前采用市级数据集中,随着计算机网络技术的不断提高以及对服务水平的要求,提出了省级乃至国家级的数据集中。除了应用需要修改以外,对于数据库管理员来讲,最重要的工作就是 对各地分散管理的数据库统一集中到一个或者几个集中数据库中。此时就需要整理以前各地各自为政的 代码表为一个统一的代码表以及数据库的最后集中合并。

对Oracle数据库管理员来讲,这样的数据维护工作,在更新代码表中代码或者合并数据之前,首先要作的工作就是将系统中某用户下所有的外键或触发器停止,处理完数据后,再打开这些关闭的外键和触发器。针对这样的工作需求,本文给出了下面两个SQL脚本:(1)系统中某模式或用户下外键或者触发器的管理脚本;(2)外键错误自动查找脚本 。下面就来详细介绍这两个脚本。

一、约束管理脚本

该脚本可用来管理当前登录用户下的所有外键和触发器的打开和关闭,此处没有处理主键和唯一约束条件,该脚本稍加修改就可以处理主键和唯一约束条件,但这里建议最好不要在随意停止主键或唯一约束条件后,进行数据维护。

脚 本运行方法如下(SQL/PLUS):

SQL> SET SERVEROUTPUT ON;
SQL> ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
SQL> EXEC P_ALTERCONS (as_alter);

其中,参数as_alter只能是“ENABLE”或者 “DISABLE”,否则程序提示错误。当参数为“ENABLE”时,表示将当前模式下所 有的外键和触发器打开,相反“DISABLE”就是将当前模式下所有的外键和触发器关闭。

附存储过程脚本:

CREATE OR REPLACE PROCEDURE P_ALTERCONS(
AS_ALTER VARCHAR2)
AS
v_CursorID INTEGER;
v_StrCon VARCHAR2(300);
v_StrTri VARCHAR2(300);
v_FkNum NUMBER :=0;
v_TriNum NUMBER :=0;
v_sqlcode NUMBER;
v_sqlerrm VARCHAR2(600);
CURSOR C_CON IS
SELECT * FROM USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE='R';
R_CON C_CON%ROWTYPE;
CURSOR c_trigger IS
SELECT TRIGGER_NAME,STATUS FROM user_triggers;
notfound BOOLEAN;
BEGIN
DBMS_OUTPUT.PUT_LINE('BEGIN TIME: '||to_char(sysdate));

判断输入参数是否 为DISABLE或者是ENABLE,如果是的话,就继续处理,否则退出过程,给出提示

IF (UPPER (AS_ALTER) = 'DISABLE' OR UPPER(AS_ALTER) = 'ENABLE') THEN

OPEN C_CON;

时间: 2024-11-03 13:25:37

Oracle约束管理脚本的相关文章

Oracle约束管理脚本_oracle

正在看的ORACLE教程是:Oracle约束管理脚本.作为一个Oracle数据库管理员,会碰到这样的数据库管理需求,停止或者打开当前用户(模式)下所有表的约束条件和触发器.这在数据库的合并以及对数据库系统的代码表中某些代码的修改时需要做的工作之一.  我们来看这样一种实际数据库工作业务需求,这在目前的许多应用中是非常实际的.某地区银行数据,目前采用市级数据集中,随着计算机网络技术的不断提高以及对服务水平的要求,提出了省级乃至国家级的数据集中.除了应用需要修改以外,对于数据库管理员来讲,最重要的工

ORACLE约束总结

你对ORACLE约束的了解如何?比较模糊还 是相当透彻?如果你对下面几个问题了如指掌的话,恭喜你,你已经对约束掌握得比较好了,不用看这篇文章了.ORACLE的约束有啥功能作用? 有哪些类型约束(不同版本ORACLE是否不同)?视图有约束吗?约束是否会影响SQL性能? 约束信息存储在哪些系统视图.数据字典中?约束能否修改名称?能否禁用约束?延迟约束有啥好处.......   约束定义 约束是强加在表上的规则或条件.确保数据库满 足业务规则.保证数据的完整性.当对表进行DML或DDL操作时,如果此操

Oracle恢复管理器(RMAN)的功能

Oracle 恢复管理( RMAN )有很多可以用来帮助备份和恢复进程的功能,该工具具有命令行和 GUI 两种版本.通常, RMAN 执行并标准化备份和恢复进程,并且通过其操作,减少 DBA 在此过程中犯的错误. RMAN 的主要功能如下所示: 备份数据库.表空间.数据文件.控制文件和归档日志 RMAN 工具能以很多种方法备份 Oracle 数据库,给备份和恢复方法提供了很大的灵活性. 通过确定哪些块已经修改,并且仅备份修改过的块来压缩备份 RMAN 提高备份性能的方法之一就是压缩备份. RMA

ORACLE用户管理

ORACLE用户管理包括:       创建用户.修改用户.删除用户   创建用户的脚本命令是CREATE USER语句,创建用户一般要由DBA或拥有该系统权限的用户来执行.那么我们首先来创建一个名为:kerry的用户(账号) CREATE USER kerry IDENTIFIED BY K123456 DEFAULT TABLESPACE USERS QUOTA 10M ON USERS TEMPORARY TABLESPACE TEMP   创建用户以后,我们可以通过下面的脚本来查看用户信

IIS管理脚本之adsutil.vbs的使用说明

Adsutil.vbs是什么?它是Windows 2003的IIS服务自带的基于命令行下的IIS管理脚本,位于%SystemDrive%InetpubAdminScripts目录下,95,426字节.这么大的脚本一看就知道功能肯定非常强大,事实也确是如此.我感觉它就是个命令行下的"Internet 信息服务管理器"(事实上Windows 2000用%SystemDrive%InetpubAdminScripts下原有的20多个VBS进行管理,而到了2003则只剩下Adsutil.vbs

linux下oracle自动备份脚本

linux下oracle自动备份脚本  vi /home/oracle/backup.sh   //编写脚本 以下为脚本内容 time=` date +"%Y%m%d%H%M" ` //变量time 获取当前系统时间 su - oracle -c "exp hbskjt_0113/password owner=hbskjt_0113 file=/home/oracle/hbskjt_$time.dmp"  //导库脚本 cd /home/oracle tar zcv

为WebSphere Portal开发JACL管理脚本

WebSphere Portal Server 是 IBM 面向整合和协作的一个重要平台.WebSphere Portal Server 为用户提供了三种管理方式:通过基于 Web 的方式管理 Portlet.XML Configuration Interface 和 Portal Scripting Interface.基于 Web 的管理 Portlet 方式需要用户手动做各种操作,不能自动化管理操作,只适用于简单的管理操作.XML Configuration Interface 需要用户编

oracle 内存管理 总结

关于oracle内存管理这一章,还是非常重要滴,不过嫩说白了就三个东西,PGA,UGA,SGA... 先看看PGA:http://blog.csdn.net/changyanmanman/article/details/6856656 再看看SGA:http://blog.csdn.net/changyanmanman/article/details/6875402 pga不多说啦,现在一般是自动管理的,主要再看看sga吧:在命令行里输入show sga,会出现如下几个参数: fixed siz

使用Shell自动化管理脚本清理Nginx的proxy_cache缓存

Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存.两者的功能基本上一样. 在功能上,Nginx已经具备Squid所拥有的Web缓存加速功能.清除指定URL缓存的功能.而在性能上,Nginx对多核CPU的利用,胜过Squid不少.另外,在反向代理.http://www.aliyun.com/zixun/aggregation/13996.html