近期参加了达梦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
成功终止导入, 没有出现警告
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)