今天在sqlplus测试时遇到了中文乱码的问题,说到乱码的问题最先想到的就是字符集不一致的问题。

  1. 问题描述:登陆时因为密码输入错误引起错误,但是显示结果是乱码。


    sqlplus中文乱码的问题_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

重新输入上述报错的操作,正常显示中文报错信息。

sqlplus中文乱码的问题_sqlplus_02