Oracle 12c,带有序列为默认值的导出表,附加了架构



我与用户U1一起使用Oracle 12c。使用用户U1,我创建表T1,

create SEQUENCE  T1_SEQ START WITH  1;
CREATE  table T1(
  id number(11) DEFAULT T1_SEQ.nextval PRIMARY KEY ,
  name varchar2(255)
);

现在,我想将架构导出到他人,并使用下面的命令导出

expdp u1/password dumpfile=u1.dmp  schemas=u1

,但是当其他人使用u1.dmp用名为u2的新用户导入架构时,

impdp u2/password   remap_schema=u1:u2  DUMPFILE=u1.DMP TABLE_EXISTS_ACTION=REPLACE

错误发生,表T1列的默认值add add u1作为前缀。

U1.T1_SEQ.nextval

这是新的创建表语句

CREATE  table T1(
      id number(11) DEFAULT U1.T1_SEQ.nextval PRIMARY KEY ,
      name varchar2(255)
    );

当我想将一个架构移动到另一个模式时,我该如何删除U1的影响。你能给我一些建议吗?预先感谢!

这是一个已知且持续的问题。

所以你可以,

  1. 将受影响的对象排除在导入之外
  2. 使用SQLFILE选项导入受影响的对象
  3. 将SQLFILE脚本输出修改在运行之前指向正确的对象

请参阅相关主题

最新更新