解决oracle客户端中文乱码

基本情况:linux服务器上的oracle刚装好导了点数据进去,在自己的电脑上用plsql进去查询时乱码

接下里进入正题。

1.乱码原因:

window,sqlplus,oracle字符集不一致导致的

详细解释请看:https://www.cnblogs.com/bingo1717/p/7803359.html


2.解决思路
将sqlplus与操作系统的编码设为一致状态

3.解决方法
1.对于linux终端,查看.bashrc或者.bash_profile或者etc/prifile里的EXPORT NLS_LANG是否为"ORALCE服务端的字符集"
ORALCE服务端的字符集=select userenv('language') from dual;支持中文的一般为AMERICAN_AMERICA.ZHS16GBK

如果oracle里的字符集不支持中文,则需修改,参照https://blog.csdn.net/dante_feng/article/details/70789096。

对于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问题就解决了。
localedid与字符集名称对应关系:https://www.cnblogs.com/bingo1717/p/7803359.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值