You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle Data Pump导入至不同表名报错‘表不存在’,求解决方案

Oracle Data Pump导入报错“表不存在”的解决方法

错误原因

你编写的导入脚本中,tables参数指定的是目标表STG_CDR.MSC_CDR_2的分区,但Data Pump会先在dump文件中查找这些对象——而dump文件仅包含原导出表STG_CDR.MSC_CDR的内容,因此触发“表不存在”的错误。REMAP_TABLE是导入时的表名映射规则,但tables参数的作用是指定dump文件中存在的源对象,而非目标对象。

解决方法

根据你的需求,分两种场景提供修正方案:

场景1:将原表全量数据导入目标表的对应分区

如果目标表MSC_CDR_2的分区键与原表MSC_CDR一致,且希望所有数据自动路由到对应分区,修改脚本如下:

directory=IMP_TBS_BK2
dumpfile=TBS_TS_STG_CDR_M_3M201907_01.dmp,TBS_TS_STG_CDR_M_3M201907_02.dmp,TBS_TS_STG_CDR_M_3M201907_03.dmp
logfile=IMP_MSC_CDR_2_201907_1.log

REMAP_SCHEMA=STG_CDR:STG_CDR
REMAP_TABLE=STG_CDR.MSC_CDR:MSC_CDR_2

# 指定dump文件中的原表,而非目标表
tables=STG_CDR.MSC_CDR

# 跳过分区键验证(若确认数据符合目标分区规则可省略)
PARTITION_OPTIONS=NO_VALIDATION
parallel=4 
table_exists_action=append 
job_name=IMP_MSC_CDR_2_201907_1

场景2:仅导入原表中对应目标分区的数据

如果原表MSC_CDR本身也是分区表,且dump文件包含对应分区的数据,可以指定原表的分区,再通过REMAP_TABLE映射到目标表:

directory=IMP_TBS_BK2
dumpfile=TBS_TS_STG_CDR_M_3M201907_01.dmp,TBS_TS_STG_CDR_M_3M201907_02.dmp,TBS_TS_STG_CDR_M_3M201907_03.dmp
logfile=IMP_MSC_CDR_2_201907_1.log

REMAP_SCHEMA=STG_CDR:STG_CDR
REMAP_TABLE=STG_CDR.MSC_CDR:MSC_CDR_2

# 指定dump文件中原表的对应分区
tables=STG_CDR.MSC_CDR:P_20190701,
STG_CDR.MSC_CDR:P_20190702,
STG_CDR.MSC_CDR:P_20190703,
STG_CDR.MSC_CDR:P_20190704,
STG_CDR.MSC_CDR:P_20190705,
STG_CDR.MSC_CDR:P_20190706

parallel=4 
table_exists_action=append 
job_name=IMP_MSC_CDR_2_201907_1

若原表不是分区表,需通过QUERY参数过滤出对应目标分区的数据,例如:

# 需替换为实际分区键字段和条件
QUERY=STG_CDR.MSC_CDR:"WHERE partition_key_column >= '20190701' AND partition_key_column <= '20190706'"

内容的提问来源于stack exchange,提问作者Godwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 19:50:18