WEB开发网
开发学院数据库Oracle 数据泵导入SKIP_CONSTRAINT_ERRORS的bug(一) 阅读

数据泵导入SKIP_CONSTRAINT_ERRORS的bug(一)

 2008-10-25 12:57:52 来源:WEB开发网   
核心提示: 列 ID: 15拒绝的行 #7:列 ID: 16拒绝的行 #8:列 ID: 17作业 "YANGTK"."SYS_IMPORT_FULL_01" 已于 01:38:09 成功完成看来问题与索引是否是Oracle自动生成的没有关系,而与索引类型是唯一索

列 ID: 15

拒绝的行 #7:

列 ID: 16

拒绝的行 #8:

列 ID: 17作业 "YANGTK"."SYS_IMPORT_FULL_01" 已于 01:38:09 成功完成

看来问题与索引是否是Oracle自动生成的没有关系,而与索引类型是唯一索引还是非唯一索引有关。

下面创建只创建一个唯一索引,不在添加主键:

SQL> ALTER TABLE T_CONS DROP PRIMARY KEY;

表已更改。

SQL> SELECT INDEX_NAME, UNIQUENESS FROM USER_INDEXES WHERE TABLE_NAME = 'T_CONS';

INDEX_NAME UNIQUENESS

------------------------------------------------------------ ------------------

IND_T_CONS_ID UNIQUE

SQL> DELETE T_CONS WHERE ID < 10;

已删除9行。

SQL> COMMIT;

提交完成。

以下是引用片段:
SQL>HOSTimpdpyangtk/yangtkdirectory=d_outputdumpfile=t_cons.dpcontent=data_onlydata_options=skip_constraint_errors
Import:Release11.1.0.6.0-64bitProductionon星期二,1410月,20081:53:15
Copyright(c)2003,2007,Oracle.Allrightsreserved.
连接到:OracleDatabase11gEnterpriseEditionRelease11.1.0.6.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions已成功加载/卸载了主表"YANGTK"."SYS_IMPORT_FULL_01"启动"YANGTK"."SYS_IMPORT_FULL_01":yangtk/********directory=d_outputdumpfile=t_cons.dpcontent=data_onlydata_options=skip_constraint_errors处理对象类型TABLE_EXPORT/TABLE/TABLE_DATA
..导入的"YANGTK"."T_CONS"5.648KB9用完了17行
8行因以下错误而被拒绝:

ORA-00001: 违反唯一约束条件 (YANGTK.IND_T_CONS_ID)

作业 "YANGTK"."SYS_IMPORT_FULL_01" 已于 01:53:21 成功完成

虽然错误信息和有主键时不一致,但是数据是可以导出的,从这里也可以看到,Oracle在导入的时候不是看主键约束信息,而是看索引是否是唯一索引。

且不论Oracle如何实现这个功能,不过根据文档描述,可是看不到这个说明的,而且DATA_OPTIONS的参数名称为SKIP_CONSTRAINT_ERRORS也可以说明问题,这里应该是CONSTRANT,而不是INDEX。这里暂时认为是Oracle的实现上的小bug吧。

上一页  1 2 3 4 5 

Tags:数据 导入 SKIP

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接