异常数据表Exceptions的使用异常数据表Exceptions的使用.doc

异常数据表Exceptions的使用异常数据表Exceptions的使用.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
异常数据表Exceptions的使用异常数据表Exceptions的使用

异常数据表Exceptions的使用 Constraint约束是我们进行设计的一个重要方面。在日常工作中,充分利用Constraint来描述我们的数据,可以帮助我们在数据层构建起约束关系,保护数据完整性。同时,在一些特殊的场景下,完整的约束还会帮助我们生成更好的执行计划。 在生产环境下,我们进行一些数据操作时候,也会进行约束的管理。例如我们为了加快数据导入加载速度,可能会暂时的将主键、外键和索引等约束禁用掉。操作之后,重新启用。 这种时候,我们会遇到一些例外情况,一些导入的数据可能并不满足约束要求,引发问题。此时,我们就需要发现这些异常数据。 如果这些数据量比较小,我们可以较容易的发现错误数据行记录。但是如果数据量很大,那么这就是一个很费功夫的工作。 在中,我们可以启用Exceptions数据表功能。当我们启用约束的失败的时候,Oracle可以将那些引起失败的数据行记录保存在其中。 1、环境准备 我们选择构建数据表T,环境是Oracle 11gR2。 SQL?select?*?from?v$version; BANNER -------------------------------------------------------------------------------- Oracle?Database?11g?Enterprise?Edition?Release?11.2.0.1.0?-?Production PL/SQL?Release?11.2.0.1.0?-?Production CORE???????11.2.0.1.0????????Production SQL?create?table?t?as?select?*?from?dba_objects?where?1=0; Table?created 构建主键约束pk_t_id。 SQL?alter?table?t?add?constraint?pk_t_id?primary?key?(object_id); Table?altered 由于需要大规模加载数据,暂时性的disable掉约束。之后加载脏数据。 SQL?alter?table?t?disable?constraint?pk_t_id; Table?altered SQL?insert?into?t?select?*?from?dba_objects; 72460?rows?inserted 此时,启用主键出错。 SQL?alter?table?t?enable?constraint?pk_t_id; alter?table?t?enable?constraint?pk_t_id ORA-02437:无法验证(SYS.PK_T_ID) -违反主键 现在,我们希望知道那些数据是违反主键约束的。可能是重复,也可能是主键列出现空置。 2、初始化Exceptions数据表 在默认情况下,Oracle是不会Exceptions数据表的。如果我们需要使用,需要手工的进行安装创建。 安装Exceptions是通过Oracle Home目录下的一个脚本。我们可以通过调用端的脚本实现。 [oracle@bspdev?admin]$?pwd /u01/app/oracle/rdbms/admin [oracle@bspdev?admin]$?env?grep?ORACLE_HOME ORACLE_HOME=/u01/app/oracle [oracle@bspdev?admin]$?ls?-l?grep?exc -rw-r--r--.?1?oracle?oinstall????705?Sep?3?1997?utlexcpt.sql [oracle@bspdev?admin]$?quit -bash:?quit:?command?not?found [oracle@bspdev?admin]$?cat?utlexcpt.sql rem rem?$Header:?utlexcpt.sql,v?1.1?1992/10/20?11:57:02?GLUMPKIN?Stab?$ rem Rem?Copyright?(c)?1991?by?Oracle?Corporation Rem???NAME Rem?????except.sql?-?one-line?expansion?of?the?name Rem???DESCRIPTION Rem?????short?description?of?component?this?file?declares/defines Rem???RETURNS Rem Rem???NOTES Rem?????other?useful?comments,?qualifications,?etc

文档评论(0)

zyongwxiaj8 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档