0
点赞
收藏
分享

微信扫一扫

达梦数据库不同模式导入时系统提示字符集异常的解决办法

骨灰级搬砖工 2022-01-12 阅读 81

近期参加了达梦DCA的培训,练习的时候遇到一个问题:
同一模式导出导入正常,但是在将DMTEST模式导出的dmp文件导入DMTEST02时,遇到了如下报错:
提示本地编码:PG_UTF8,导入文件编码:PG_GB18030,[警告]导入导出编码方式不一致,可能无法转换
在这里插入图片描述

提示编码不一致,达梦数据库安装时字符集采用的GB18030,为了以防万一通过SQL进行查询
在这里插入图片描述

这里看的只能查询到字符集对应的编号,查询得知0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR。说明数据库字符集为GB18030没有问题。

继续查询服务器字符集输入locale,确定服务器字符集为LANG=zh_CN.UTF-8
在这里插入图片描述

确定问题确实由于服务器及数据库字符集不一致导致。
查看服务器是否支持GB18030字符集locale -a | grep 18030
在这里插入图片描述

得知服务器支持GB18030字符集,声明临时字符集为gb18030
在这里插入图片描述

声明完成后,通过locale查询当前会话字符集已经修改为gb18030
继续尝试导入
在这里插入图片描述

可见字符集已经能够对应,但提示无效的对象:DMTEST04
由于导出模式使用的DMTEST账户,但导入时使用了模式映射,确认命令也没有问题。
在这里插入图片描述
在这里插入图片描述

返回去再重看老师的培训视频,发现当时老师明明讲解过,需要使用全库导入,重试后导入成功。
在这里插入图片描述

正在导入,请稍候…

dimp V8

本地编码:PG_GB18030, 导入文件编码:PG_GB18030

开始导入模式[DMTEST]…

导入模式中的 NECESSARY GLOBAL 对象……

模式中的 NECESSARY GLOBAL 对象导入完成……

----- [2022-01-12 12:27:11]导入表:TESTTAB -----

创建表 TESTTAB …

导入表 TESTTAB 的数据:2 行被处理

导入表的索引:

IX_TESTTAB_NAME

导入成功……

导入表的索引:

IX_TESTTAB_SEX

导入成功……

----- [2022-01-12 12:27:11]导入表:TESTTAB1 -----

创建表 TESTTAB1 …

表 TESTTAB1 的数据导入完成,共导入数据:0 行

导入模式中的 GLOBAL 对象……

导入 VIEW 对象 : V_COUNT

模式中的 GLOBAL 对象导入完成……

模式[DMTEST04]导入完成…

导入表的约束:

UK_TESTTAB_NAME

导入成功……

整个导入过程共花费 0.074 s

成功终止导入, 没有出现警告

举报

相关推荐

0 条评论