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,这是一个已知且持续存在的问题。
所以你可以,
- 从导入中排除受影响的对象
- 使用 sqlfile 选项导入受影响的对象
- 修改 sqlfile 脚本输出以指向 运行 之前的正确对象
我正在与用户 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,这是一个已知且持续存在的问题。
所以你可以,
- 从导入中排除受影响的对象
- 使用 sqlfile 选项导入受影响的对象
- 修改 sqlfile 脚本输出以指向 运行 之前的正确对象