暂无图片
在impdp导入oracle12c数据库时出现大量约束显示创建失败,对象类型约束已存在这样的错误如何才能正常创建?
我来答
分享
暂无图片 匿名用户
在impdp导入oracle12c数据库时出现大量约束显示创建失败,对象类型约束已存在这样的错误如何才能正常创建?

源数据库是在线expdp导出数据
123.png
1234.png

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
冯睿

这个是由于impdp的时候,索引和约束的创建先后顺序问题导致的,以前遇到过这个问题。

1.首先,需要找到这些报错的相关对象,在导入的时候,需要把这些表和索引以及约束排除掉(以下用3个表来举例)

exclude=index,constraint,TABLE:\"IN \(\'TABLE_NAME1\',\'TABLE_NAME2\',\'TABLE_NAME3\'\)\"


2.impdp导入这些表,依然排除索引和约束

tables=TABLE_NAME1 exclude=index,constraint

tables=TABLE_NAME2 exclude=index,constraint

tables=TABLE_NAME3 exclude=index,constraint


3.使用dbms_metadata.get_ddl获取索引定义,如果数量较多,可以做成脚本,在步骤2导入完成后,执行脚本创建索引


4.创建约束,查询原环境约束定义,如果数量较多,输出脚本,在索引创建完成后,执行创建约束的脚本

如上述步骤,就可以导入成功了,并且成功复原索引以及约束。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
lnn

DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交