这个专题讲一些日常运维的异常处理 

今天讲一个impdp过程中的ORA-02291错误


## 1. 现象


今天在做impdp导入,导入结束会发现其中一个表的插入报错如下


[image:796 size:orig]



分别有ORA-31693,ORA-29913,ORA-02291三个错误

## 2. 原因查找 


### 2.1 查看错误代码

首先我们分别查看该报错的内容

[image:797 size:orig]




通过ORA-02291错误内容我们可以看到是由子该表外键的值和主表的不栏位不匹配

建议的动作为删除子表外键或者主表新增相关的值

问题是为什么主表会找不到匹配的呢?

### 2.2 查看导入日志

我们查看导入日志后有所发现,原来主表的数据在子表后面插入,这才导致上面的错误


##  3. 解决方法


解决就很简单了,由于整体的导入是成功的,这时主表已经有数据了,所以我们只需将该子表单独导入一下就可以

impdp参数中使用tables=schema.child_table 即可