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

Linux Oracle 11g用Datapump迁移Schema到Windows 19c报错如何解决

Oracle 11g跨版本导入19c ORA-00904错误解决方案

错误根因

报错中前缀为SYS_STS的无效标识符是Oracle 11g生成的统计信息相关内部隐藏列,跨大版本导入时19c无法兼容旧版本的统计信息格式,导致表创建失败。

第一步:修正impdp命令语法错误

你当前使用的impdp命令重复声明了DIRECTORY参数,属于语法错误:

  • 若转储文件存放在TEMPDIR目录对象、日志需要输出到NEW目录对象,正确写法是将目录对象前缀加到对应文件名前,不需要重复写DIRECTORY参数:DUMPFILE=TEMPDIR:file.dmp LOGFILE=NEW:file.log
  • 原导出命令仅导出了A/B/C/D/E五个Schema,不需要使用FULL=y参数,直接指定SCHEMAS=A,B,C,D,E即可,避免导入不必要的系统对象。

第二步:添加核心兼容参数

导入时添加*EXCLUDE=STATISTICS*参数,跳过旧库统计信息导入,是解决本次报错的核心配置:
修正后的完整导入命令参考:

impdp username/pwd DUMPFILE=TEMPDIR:file.dmp LOGFILE=NEW:file.log SCHEMAS=A,B,C,D,E EXCLUDE=STATISTICS

可选适配参数

如果调整后仍存在兼容性报错,可以额外添加VERSION=11.2参数,强制impdp按照11g版本格式解析dump文件:

impdp username/pwd DUMPFILE=TEMPDIR:file.dmp LOGFILE=NEW:file.log SCHEMAS=A,B,C,D,E EXCLUDE=STATISTICS VERSION=11.2

导入后收尾操作

导入完成后在19c库重新收集对应Schema的统计信息,性能和适配性都优于直接导入旧库的统计信息:

EXEC DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME=>'替换为实际Schema名', CASCADE=>TRUE);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:15:02