Oracle 12c,以序列为默认值导出 table,附加模式

Oracle 12c, export table with sequence as default value, schema is attached

我正在与用户 u1 一起使用 oracle 12c。对于用户 u1,我创建 table T1 是这样的,

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

现在我想把schema导出给其他人,使用下面的命令导出

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

发生错误,因为默认值 table T1 列 ID 添加 U1 作为前缀。

U1.T1_SEQ.nextval

这是新创建的 table 语句

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

当我想将一个模式移动到另一个模式时,如何消除 U1 的影响。 你能给我一些建议吗?提前致谢!

根据 Ask Tom,这是一个已知且持续存在的问题。

所以你可以,

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

Please See relevant topic