ITPub博客

首页 > Linux操作系统 > Linux操作系统 > PK ? compress ? impdp?

PK ? compress ? impdp?

原创 Linux操作系统 作者:lfree 时间:2007-03-28 00:00:00 0 删除 编辑

http://www.itpub.net/showthread.php?s=&postid=7168709#post7168709

今天遇到一个impdp的问题。

如果PK索引包含compress参数,会导致的是否无法导入。



select * from v$version ;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production


5 rows selected.


CREATE table t as SELECT * FROM dba_objects where rownum<=10;

CREATE UNIQUE INDEX PK_T ON T (OWNER, OBJECT_NAME) COMPRESS 1;

ALTER TABLE T ADD ( CONSTRAINT PK_T PRIMARY KEY (OWNER, OBJECT_NAME));

CREATE OR REPLACE DIRECTORY TMP AS 'd:tmp';

GRANT READ, WRITE ON DIRECTORY TMP TO SCOTT WITH GRANT OPTION;

d:> expdp scott/xxx directory=tmp dumpfile=scott.dmp tables=scott.T

DROP table t ;

d:>impdp scott/xxx directory=tmp dumpfile=scott.dmp

ORA-39083: 对象类型 CONSTRAINT 创建失败, 出现错误:
ORA-14071: 用于强制约束条件的索引选项无效
失败的 sql 为:
ALTER TABLE "SCOTT"."T" ADD CONSTRAINT "PK_T" PRIMARY KEY ("OWNER", "OBJECT_NAME") USING INDEX PCTFREE 10 INITRANS 2 MAX
TRANS 255 COMPRESS 1 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FR
EELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE


问题出在建立约束的时候加入了compress参数,删除这个参数执行sql正常。

使用10.2.0.2.0的impdp版本问题消失!看来是oracle的BUG。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-82999/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2485
  • 访问量
    6290135