今天在sqlplus测试时遇到了中文乱码的问题,说到乱码的问题最先想到的就是字符集不一致的问题。
问题描述:登陆时因为密码输入错误引起错误,但是显示结果是乱码。
2.上网查看相关资料之后,需要设置NLS_LANG,使其与oracle服务器端的字符集保持一致。
[oracle@mycentos ~]$ echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
SQL> col parameter for a30
SQL> col value for a30
SQL> select * from nls_database_parameters where parameter in('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET');
PARAMETER VALUE
------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSET AL32UTF8
拼接NLS_LANGUAGE、NLS_TERRITORY 、NLS_CHARACTERSET三个参数对应的value值就是需要设定的NLS_LANG的值,即
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
NLS_LANG与目标值不匹配,所以需要重新输出NLS_LANG的值,即
[oracle@mycentos ~]$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
重新输入上述报错的操作,正常显示中文报错信息。