单位给了一个dmp文件,导入出现约束之类的错误,提示如下:

即将启用约束条件...
IMP-00017: 由于 ORACLE 错误 2298, 以下语句失败:
"ALTER TABLE "PUB_LOGONLOG" ENABLE CONSTRAINT "FK_LOGONLOG_LOG""
IMP-00003: 遇到 ORACLE 错误 2298
ORA-02298: 无法验证 (PUBDATA.FK_LOGONLOG_LOG) - 未找到父项关键字
成功终止导入, 但出现警告。

网上找了资料后,也有这样子的提示的。

IMP-00017: following statement failed with ORACLE error 2298:
"ALTER TABLE "OPERATE_LOG" ENABLE CONSTRAINT REFEREN"
"CE_WDXC_O""
IMP-00003: ORACLE error 2298 encountered
ORA-02298: cannot validate (REFERENCE_O) - parent keys not found
IMP-00017: following statement failed with ORACLE error 2298:
"ALTER TABLE "STORAGE" ENABLE CONSTRAINT "ORDER_STORAGE_O"
"""
IMP-00003: ORACLE error 2298 encountered
ORA-02298: cannot validate STORAGE_O) - parent keys not found
Import terminated successfully with warnings.

也有一些说是这个原因“出现上面的原因有可能是在导出的时间某个表已经被导出了,可是他外键关联系有数据变化了,导致不一致,所以报错。exp不能保证事务的完整性。如果你导出主表。随后有人在主表增加记录,然后在子表增加记录,提交。”

不能鉴定上面说的是否正确,应该也会发生,不过查了很多资料后又发现,应该是imp导出时少了一个参数。所以解决办法是在导出务份的脚本中加入这个参数consistent=y 默认为no .为的是保持一致的作用。

$ exp system/22222 file=/home/oracle/2222.dmp owner=aaa consistent=y