基本情况:linux服务器上的oracle刚装好导了点数据进去,在自己的电脑上用plsql进去查询时乱码
接下里进入正题。
1.乱码原因:
window,sqlplus,oracle字符集不一致导致的
2.解决思路
将sqlplus与操作的编码设为一致状态
3.解决方法
1.对于linux终端,查看.bashrc或者.bash_profile或者etc/prifile里的export nls_lang是否为”oralce服务端的字符集”
oralce服务端的字符集=select userenv(‘language’) from dual;支持中文的一般为american_america.zhs16gbk
如果oracle里的字符集不支持中文,则需修改。
对于window的plsql,在系统变量里添加一项nls_lang,内容为american_america.zhs16gbk
4.注意
另外还需要注意用在shell文件里的字符编码名称与oracle是长的不一样的。
比如这个zh_cn.utf8是字符集的localeid而不是字符集的名称,真正的名称叫simplifiedchinese_china.al32utf8,如果设置成zh_cn.utf8,oracle会报ora-12705: cannotaccess nls data files or invalid environmentspecified错误。在.bash_profile里面加入nls_lang=”simplifiedchinese_china.al32utf8″; export nls_lang问题就解决了。