Oracle 数据库 sqlplus 乱码问题
问题的引出
当我们 sqlplus 进入数据库,所有的提示都是问号 或者是乱码,说明我们客户端的字符集不是英文 , 并且我们终端的字符集 与 sqlplus 建立数据库连接的字符集不同。
Oracle server 端字符集
1 | select userenv('language') from dual; |
解决方式 说明
1 | 1、我们只需要将 sqlplus 中 会话的字符集更改为 英文即可,不过这需要你习惯英文。 |
1、Linux bash 脚本环境下,设置 NLS_LANG 环境变量
常用的字符集
1 | SIMPLIFIED CHINESE_CHINA.UTF8 |
1 | export NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8" |
2、Window 命令行下面的配置
1 | # 常用中文字符集 |
3、在 sqlplus 会话中临时更改环境变量的值(我为了方便 更改 美国的字符集)
常用的字符集
1 | SIMPLIFIED CHINESEAMERICAN |
1 | alter session set nls_language=american; |
4、永久生效,直接更改数据库的 NLS_LANGUAGE 参数,须重启才能生效
1 | alter system set nls_language=american scope=spfile; |