分类信息
各地考试

当前位置:首页 » Oracle认证 » 专用技术 » 正文

Oracle专用技术性能调优:oracle避免约束带来的导入数据解决方案(4)


时间:2013-10-31 来源:Oracle认证考试网 浏览次数:393  【华夏培训网:中国教育培训第一门户

Oracle导入数据其 实很简单,但是如果数据存在约束:如主外键、主键约束、唯一约束,可能给数据导入带来很大的麻烦。比如主外键


       Oracle导入数据其 实很简单,但是如果数据存在约束:如主外键、主键约束、唯一约束,可能给数据导入带来很大的麻烦。比如主外键,如果批量导入数据,是难于指定导入的先后顺 序的,相信有不少入门级朋友们,会遇到跟我一样的问题。因此,为了节省大家的宝贵时间,特此分享自己的研究成果。 个人解决方案为:在导入过程中,先导入表结构,再禁用约束,其次导入数据,最终启用约束即可。其核心就是禁用和启用约束过程的创建。具体步骤如下:

  1.导出(分为2步):

  导出结构、导出数据 –只导出表结构 $exp devsem/devsem@pcmdb file=d:\struct.dmp log=d:\struct.log rows=n; –导出数据 $exp devsem/devsem@pcmdb file=d:\data.dmp log=d:\data.log ;

  2.导入结构 –导入表结构 $imp file=d:\struct.dmp log=d:\imp.log full=y;

  3.编写过程

  001

  CREATE OR REPLACE PROCEDURE MANAGE_USER_CONSTRAINTS(OPERATION VARCHAR2,

  002

  FK        BOOLEAN DEFAULT TRUE,

  003

  PK        BOOLEAN DEFAULT TRUE,

  004

  UK        BOOLEAN DEFAULT TRUE) IS

  005

  ST VARCHAR2(255);

  006

  CURSOR R IS

  007

  SELECT TABLE_NAME, CONSTRAINT_NAME

  008

  FROM USER_CONSTRAINTS

  009

  WHERE CONSTRAINT_TYPE = 'R';

  010

  011

  CURSOR P IS

  012

  SELECT TABLE_NAME, CONSTRAINT_NAME

  013

  FROM USER_CONSTRAINTS

  014

  WHERE CONSTRAINT_TYPE = 'P';

  015

  016

  CURSOR U IS

  017

  SELECT TABLE_NAME, CONSTRAINT_NAME

  018

  FROM USER_CONSTRAINTS

  019

  WHERE CONSTRAINT_TYPE = 'U';

  020

  021

  BEGIN

  022

  IF UPPER(OPERATION) IN ('DROP', 'DISABLE') THEN

  023





        Oracle认证

推荐图文

热门点击排行

©2015 hxpx.com All Rights Reserved 滇ICP备13002816号-1
华夏培训网唯一网址www.hxpx.com