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

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



2.上网查看相关资料之后,需要设置NLS_LANG,使其与oracle服务器端的字符集保持一致。

[oracle@mycentos~]$echo$NLS_LANG

AMERICAN_AMERICA.ZHS16GBK


SQL>colparameterfora30

SQL>colvaluefora30

SQL>select*fromnls_database_parameterswhereparameterin('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET');

PARAMETERVALUE

------------------------------------------------------------

NLS_LANGUAGEAMERICAN

NLS_TERRITORYAMERICA

NLS_CHARACTERSETAL32UTF8

拼接NLS_LANGUAGE、NLS_TERRITORY 、NLS_CHARACTERSET三个参数对应的value值就是需要设定的NLS_LANG的值,即

NLS_LANG=AMERICAN_AMERICA.AL32UTF8

NLS_LANG与目标值不匹配,所以需要重新输出NLS_LANG的值,即

[oracle@mycentos~]$exportNLS_LANG=AMERICAN_AMERICA.AL32UTF8

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