Windows系统中通过SQL Developer向Oracle导入dump文件出现ORA-31640错误如何解决
ORA-31640 异常(Windows平台Oracle导入dump文件)解决方案
1. 修正目录对象路径格式
- Oracle在Windows平台识别路径时,单反斜杠
\会被判定为转义字符,需要统一路径分隔符:要么全用正斜杠/,要么用双反斜杠\\ - 执行以下SQL查询已创建的目录对象配置:
SELECT directory_name, directory_path FROM dba_directories WHERE directory_name = '你创建的目录对象名称'; - 确保返回的路径结尾无多余斜杠,示例正确格式:
C:/DATA_DUMP_DIR或C:\\DATA_DUMP_DIR,错误格式:C:\DATA_DUMP_DIR、C:/DATA_DUMP_DIR/
2. 验证文件与文件夹权限
- 确认Oracle服务运行账户对
C:\DATA_DUMP_DIR文件夹拥有读取、列出文件夹内容权限 - 确认
20191103.DMP文件未被其他进程占用(如压缩软件、资源管理器、其他数据库进程) - 确认文件名大小写和导入参数中的写法完全匹配,Windows文件系统默认不区分大小写,但Oracle导入逻辑会做严格校验
3. 调整导入参数写法
- 导入时优先使用
目录对象名+文件名的组合,不要写全路径,示例impdp命令参考:
impdp 数据库用户名/密码@实例名 directory=DATA_DUMP_DIR dumpfile=20191103.DMP logfile=import.log
- 如果必须填写全路径,统一使用正斜杠作为分隔符,示例:
C:/DATA_DUMP_DIR/20191103.DMP,禁止正反斜杠混用
4. 异常场景排查
- 若dump文件体积大于4GB,确认文件所在分区为NTFS格式,FAT32分区不支持单文件超过4GB
- 可将dump文件移动到Oracle默认导出目录
$ORACLE_HOME/admin/实例名/dpdump,使用系统自带的DATA_PUMP_DIR目录对象测试导入,排除自定义目录配置错误 - 校验dump文件完整性,对比源文件与当前文件的MD5值,确认文件传输、拷贝过程中未损坏
内容的提问来源于stack exchange,提问作者Allen
相关产品推荐
相关产品推荐

