转载自:http://www.jb51.cc/article/p-uqifbrhw-mc.html
1 源数据库:
字符集:SIMPLIFIEDCHINESE_CHINA.AL32UTF8
EXP导出客户端字符集(windows导出):NLS_LANG=SIMPLIFIEDCHINESE_CHINA.ZHS16GBK
2 目标数据库:
字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
IMP导入客户端字符集(linux客户端导入):zh_CN.UTF-8
导入出现的问题:
数据查询乱码,如果源数据库和目标数据库字符集不冲突的话,可以考虑为PL/sql所在的客户端的字符集问题。
在PL/sql所在的客户端(pl/sql都装在windows上)环境变量中增加:
至此,查询结果正常。
解决问题2:表注释为乱码
因为是在linux端进行imp导入的,在Linux端执行export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,然后进行imp重新导入,发现注释正常。
总结:一般出现乱码,考虑三方面的问题:
1.1 导入后如果查询数据为乱码,查看PL/sql所在客户端的字符集,修改为中文字符集。 1.2 导入后如果查询数据为乱码,查看源端和目标端的字符集是否包含(修改数据库字符集比较复杂,不建议) 2 导入后如果表注释为乱码,查看导入客户端的字符集是否和导出端的字符集是否一致。