Oracle约束管理脚本

 更新时间:2007年03月07日 00:00:00   作者:  
正在看的ORACLE教程是:Oracle约束管理脚本。

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

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

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

  一、约束管理脚本

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

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


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

  附存储过程脚本: 


  判断输入参数是否为DISABLE或者是ENABLE,如果是的话,就继续处理,否则退出过程,给出提示
IF (UPPER(AS_ALTER) = 'DISABLE' OR UPPER(AS_ALTER) = 'ENABLE') THEN
OPEN C_CON;

[NextPage]

当前用户下外键的处理 ENABLE或者 DISABLE


  二、约束错误自动查找脚本 

  一般,数据库管理员在对数据进行维护时,如新数据的导入前,首先要关闭所有的外键和触发器,数据成功导入后,再打开导入前关闭的外键和触发器。这时经常会遇到错误号为ORA-02298的“未找到父项关键字”的错误。该错误的原因就是数据库表中出现了不能满足外键约束条件的记录。这里,另外给出了一个脚本(P_CON_ERR)用来自动查找造成这类错误的原因,也就是找出不满足外键约束条件的字段值。 

  该存储过程可单独运行,同时在前面介绍的存储过程P_ALTERCONS中也进行了调用,在存储过程P_ALTERCONS中,可以看到在打开外键时,如果出现错误号为ORA-02298的错误,就调用该存储过程,自动查找造成外键不能启动的原因。 

  下面是单独运行该存储过程的例子,在SQL/PLUS环境下: 

PL/SQL过程已成功完成。 

  其中,FK_SB_HJJL_RELATION__SB_PZXH为出现错误的外键名称。 

  附存储过程脚本: 

上一页    

相关文章

  • Oracle创建自增字段--ORACLE SEQUENCE的简单使用介绍

    Oracle创建自增字段--ORACLE SEQUENCE的简单使用介绍

    在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方接下来为大家介绍下Oracle创建自增字段方法感兴趣的各位可不要错过了哈
    2013-03-03
  • Oracle带输入输出参数存储过程(包括sql分页功能)

    Oracle带输入输出参数存储过程(包括sql分页功能)

    这篇文章主要介绍了Oracle带输入输出参数存储过程(包括sql分页功能)的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • 详解如何删除Oracle数据库临时表空间

    详解如何删除Oracle数据库临时表空间

    因生产环境磁盘空间不足,影响了业务,短时间内无法扩容磁盘,经过排查发现,可以释放temp临时表空间来临时释放部分空间,本文记录了如何释放临时表空间的详细操作步骤,需要的朋友可以参考下
    2024-03-03
  • Oracle数据库中SQL开窗函数的使用

    Oracle数据库中SQL开窗函数的使用

    这篇文章主要介绍了Oracle数据库中SQL开窗函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • ORA-00349|激活 ADG 备库时遇到的问题及处理方法

    ORA-00349|激活 ADG 备库时遇到的问题及处理方法

    这篇文章主要介绍了ORA-00349|激活 ADG 备库时遇到的问题及处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Oracle中PL/SQL的用法总结

    Oracle中PL/SQL的用法总结

    本文详细讲解了Oracle中PL/SQL的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Oracle数据库的启动与关闭方法

    Oracle数据库的启动与关闭方法

    这篇文章主要介绍了Oracle数据库的启动与关闭方法,需要的朋友可以参考下
    2013-07-07
  • Oracle RMAN快速入门指南

    Oracle RMAN快速入门指南

    Oracle RMAN快速入门指南...
    2007-03-03
  • oracle创建新用户以及用户权限配置、查询语句

    oracle创建新用户以及用户权限配置、查询语句

    在Oracle数据库中要创建一个用户并仅赋予查询权限,你可以按照以下步骤进行操作,这篇文章主要给大家介绍了关于oracle创建新用户以及用户权限配置、查询语句的相关资料,需要的朋友可以参考下
    2024-03-03
  • PL/SQL Dev连接Oracle弹出空白提示框的解决方法分享

    PL/SQL Dev连接Oracle弹出空白提示框的解决方法分享

    第一次安装Oracle,装在虚拟机中,用PL/SQL Dev连接远程数据库的时候老是弹出空白提示框,网上找了很久,解决方法也很多,可是就是没法解决我这种情况的。
    2014-08-08

最新评论