1.首先查询数据库字符集
1 2 3 4 5 6 7 | SQL> select userenv( 'language' ) from dual; USERENV( 'LANGUAGE' ) ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 SQL> exit |
从上面得知数据库字符集为AMERICAN_AMERICA.AL32UTF8
2.配置环境变量
设置开机重启自动加载将其放到
/home/oracle/.bash_profile
或/etc/profile中
1 2 | echo 'export NLS_LANG="AMERICAN_AMERICA.UTF8"' >> /etc/profile source /etc/profile |
3.再次查询即可正常识别中文
原因分析:
sqlplus乱码与操作系统NLS_LANG变量有关,当数据库字符集与NLS_LANG变量不一致就产生乱码。