ITPub博客

首页 > 数据库 > Oracle > IMPDP时有2张表报ORA-31693 ORA-38500

IMPDP时有2张表报ORA-31693 ORA-38500

原创 Oracle 作者:xfhuangfu 时间:2026-08-11 16:15:28 0 删除 编辑

适用范围


--源端
SQL>desc emp1
 Name                                      Null?    Type
 ----------------------------------------- -------- ------------------
 EMPLOYEE_ID                                        NUMBER(6)
 FIRST_NAME                                         VARCHAR2(20)
 LAST_NAME                                 NOT NULL VARCHAR2(25)
 PHONE_NUMBER                                       VARCHAR2(20)
 COMMISSION_PCT                                     NUMBER(2,2)
 MANAGER_ID                                         NUMBER(6)
 DEPARTMENT_ID                                      NUMBER(4)
SQL>desc emp2
 Name                                      Null?    Type
 ----------------------------------------- -------- ------------------
 EMPLOYEE_ID                                        NUMBER(6)
 FIRST_NAME                                         VARCHAR2(20)
 LAST_NAME                                 NOT NULL VARCHAR2(25)
 PHONE_NUMBER                                       VARCHAR2(20)
 COMMISSION_PCT                                     NUMBER(2,2)
 MANAGER_ID                                         NUMBER(6)
 DEPARTMENT_ID                                      NUMBER(4)
HR@hrpdb(HRPDB)>
                                           VARCHAR2(30)
--目标端
SQL>desc emp1
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPLOYEE_ID                                        NUMBER(6)
 FIRST_NAME                                         VARCHAR2(20)
 LAST_NAME                                 NOT NULL VARCHAR2(25)
 PHONE_NUMBER                                       VARCHAR2(20)
 COMMISSION_PCT                                     NUMBER(2,2)
 MANAGER_ID                                         NUMBER(6)
 DEPARTMENT_ID                                      NUMBER(4)
 ADDRESS 
SQL>desc emp2
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPLOYEE_ID                                        NUMBER(6)
 FIRST_NAME                                         VARCHAR2(20)
 LAST_NAME                                 NOT NULL VARCHAR2(25)
 PHONE_NUMBER                                       VARCHAR2(20)
 COMMISSION_PCT                                     NUMBER(2,2)
 MANAGER_ID                                         NUMBER(6)
 DEPARTMENT_ID                                      NUMBER(4)
 ADDRESS



经过比对,expdp的源端HR用户下的emp1和emp2表结构与impdp的目标环境不一致。


小结:impdp时使用 TABLE_EXISTS_ACTION=TRUNCATE 或 APPEND 且仅导入数据时,Data Pump 内部代码需要比对元数据以确保字段能正确映射。此比对过程在内部会调用元数据 XML 解析引擎。如果两端结构不匹配,内部 XML 解析逻辑会触发 ORA-38500 错误。


建议:在11g版本中进行impdp时业务用户表结构源与目标端应该保持一致,防止应字段不一致导致作业失败以及影响业务。

-the end-

笔者文章集合详见:
https://www.myhfxf.com
https://www.xiaofeihuangfu.com
CSDN : https://blog.csdn.net/xfhuangfu
ITPUB : https://blog.itpub.net/28373936/
微信公众号:xfhuangfu

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28373936/viewspace-3179507/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Xiaofei Huangfu Oracle DBA,Oracle ACE Oracle 19c OCM12c OCM,11g OCM MySQL 5.6,5.7,8.0 OCP 18年以上IT从业经验,有丰富的数据库和开发领域经验,多年Oracle运维经验和java开发经验。

注册时间:2013-09-05

  • 博文量
    151
  • 访问量
    231217