关于oracle 11g导出的dmp文件无法导入10g的问题

本文介绍了解决从Oracle 11g数据库导出的DMP文件在导入时出现乱码的问题。通过调整客户端环境变量NLS_LANG设置,并确保与源数据库字符集一致,解决了中文显示为问号的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到一个问题,由于无法远程11g是数据库服务器,只能用exp命令导出了一张表的dmp文件;在本地导入时遇到如下错误:

IMP-00010: 不是有效的导出文件, 头部验证失败
IMP-00000: 未成功终止导入

于是我查了网上大神们的各种说法,当然有比如使用数据泵导入导出的各种方法,有一种是直接用文本编辑器修改了dmp文件中的版本号的方法,我尝试了一下确实是导入了。然而进去查了数据发现中文全是????,应该是字符集出错了。查了一下,原因是源数据库使用的字符集和现在导入的目标数据库字符集不一致,且目标数据库字符集不是源数据库字符集的超集。解决办法是修改目标数据库的字符集(这个字符集是在创建数据库实例的时候设置的),改成和源数据库一致,再执行导入操作,可以解决数据表中中文字符乱码问题。

可是我发现本地数据库服务端并没有乱码,而是我这边plsql乱码,在注册表HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1,找到NLS_LANG,查看数值数据也确实是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,最后发现我的环境变量并没有配置NLS_LANG,于是新建NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 重启plsql后乱码就正常了。

转载于:https://www.cnblogs.com/galileo/p/5441370.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值