Oracle约束管理脚本[Oracle防范]
本文“Oracle约束管理脚本[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
作为一个Oracle数据库管理员,会碰到这样的数据库管理需求,终止大概翻开当前用户(情势)下全部表的约束条件和触发器.这在数据库的归并以及对数据库系统的代码表中某些代码的改正时需求做的工作之一.
我们来看这样一种实际数据库工功课务需求,这在目前的很多利用中是非常实际的.某区域银行数据,目前采取市级数据集合,随着计算机网络技术的不断提高以及对服务水平的要求,提出了省级乃至国家级的数据集合.除了利用需求改正以外,关于数据库管理员来说,最重要的工作就是对各地分离管理的数据库统一集合到一个大概几个集合数据库中.此时就需求整理从前各地各自为政的代码表为一个统一的代码表以及数据库的最后集合归并.
对Oracle数据库管理员来说,这样的数据保护工作,在更新代码表中代码大概归并数据之前,首先要作的工作就是将系统中某用户下全部的外键或触发器终止,处理完数据后,再翻开这些关闭的外键和触发器.针对这样的工作需求,本文给出了下面两个SQL脚本:(1) 系统中某情势或用户下外键大概触发器的管理脚本;(2) 外键错误自动查找脚本.下面就来具体介绍这两个脚本.
1、约束管理脚本
该脚本可用来管该当前登录用户下的全部外键和触发器的翻开和关闭,此处没有处理主键和唯一约束条件,该脚本略加改正便可以处理主键和唯一约束条件,但这里倡议最好不要在随便终止主键或唯一约束条件后,举行数据保护.
脚本运行办法以下(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;
以上是“Oracle约束管理脚本[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |