这个专题讲一些日常运维的异常处理
今天讲一个impdp过程中的ORA-02291错误
1. 现象
今天在做impdp导入,导入结束会发现其中一个表的插入报错如下
分别有ORA-31693,ORA-29913,ORA-02291三个错误
2. 原因查找
2.1 查看错误代码
首先我们分别查看该报错的内容
通过ORA-02291错误内容我们可以看到是由子该表外键的值和主表的不栏位不匹配
建议的动作为删除子表外键或者主表新增相关的值
问题是为什么主表会找不到匹配的呢?
2.2 查看导入日志
我们查看导入日志后有所发现,原来主表的数据在子表后面插入,这才导致上面的错误
3. 解决方法
解决就很简单了,由于整体的导入是成功的,这时主表已经有数据了,所以我们只需将该子表单独导入一下就可以
impdp参数中使用tables=schema.child_table 即可