windows达梦数据库导入dmp文件报编码不一致问题解决

在Windows上使用达梦数据库导入dmp文件时遇到编码不一致的问题,通常由于系统GBK编码与数据库GB18030编码冲突。通过DM管理工具无法直接导入,且错误提示不明确。解决方法是在命令行使用导入命令,即使显示编码不一致警告,也能继续执行。错误可能是由于用户名不匹配,创建相应用户后即可成功导入。

因为需要使用国产数据库达梦做项目,所以搭建了达梦的环境。数据库安装和创建实例就不多说了。在导入别人给的dmp文件的时候,遇到了编码不一致的问题。

(先贴问题图片让大家快速确定是不是和我一样的问题)

其他文章要么是说linux环境导入,要么就是windows环境但让你改本地字符集。都没办法解决我的问题,要么代价太大。

先看看我遇到的问题过程。

首先我安装并创建了实例。我拷贝了一份dmp文件。

然后打开DM管理工具。用SYSDBA去创建一个用户,用户名应该和导出时的一致。如果你不知道导出时的用户名,可以先随便取一个。

例如我创建一个DM10

 

 用户的权限之类的可以先不设置,需要的后面再修改就行了。

然后刷新模式。

 模式中就会出现DM10了。然后右键选择导入。(如果导入和导出都是灰的,请多刷新或者重启DM管理工具)。

 

 选择导入目录和导入文件之后,点击确定,然后问题就来了。

 这个错误原因是因为我们windows是GBK编码,但达梦导出的一般都是GB18030(因为创建实例的时候选的18030,如果创建实例时只有GBK没有18030,可以先把windows改成UTF-8,具体方法不描述了,自行百度),所以这里直接中断了。

我百度了很多文章,要么是解决Linux环境的,要么得改windows为18030。两个方式我都不想,所以我尝试从CMD命令窗口直接导入。

首先到达梦的安装目录的bin目录下,然后输入导入命令(具体命令自行百度,我这里演示简单的)。

  上图可以看到,虽然还是提示编码不一致,但是继续执行下去了。警告是因为导出用户的DM74,而导入却用DM10,所以后面最终会导入失败。这时候我们根据警告再建一个DM76用户就行了。

下面是我关闭服务然后删除实例后,重新创建的实例和用户进行的导入。

我直接在DM管理工具尝试了,可以直接导入,之前的终止是因为用户名的问题,DM管理工具没有具体的提示错误。

 

总结:并不是字符集不同导致DM管理工具无法直接导入,只是因为DM管理工具没有详细的提示错误,所以显得字符集是直接原因,使用命令符导入方式可以获得错误提示,更好解决导入失败的问题。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值