适用范围
--源端 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/ ,如需转载,请注明出处,否则将追究法律责任。