一:问题描述
有时,想用AS重新定义新的中文字段名称,或者在查询包含中文的字段时,查询结果总是出现很多问号,如图:
二:出错原因
环境变量NLS_LANG和数据库服务端字符集不一致
-
SQL> select userenv('language') from dual;
-
-
-
-
USERENV('LANGUAGE')
-
-
----------------------------------------------------
-
-
AMERICAN_AMERICA.WE8ISO8859P1
-
-
[oracle@source_pc ~]$ echo $NLS_LANG
-
-
-
--显示结果为空
三:解决办法
修改环境变量NLS_LANG
-
[oracle@source_pc ~]$ export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
-
-
--这样只是针对该窗口,临时生效,对于其他会话不生效。
-
-
要想永久生效,可以写入.bash_profile文件。
-
-
[oracle@source_pc ~]$ pwd
-
-
/home/oracle
-
-
[oracle@source_pc ~]$ vi .bash_profile
-
-
添加一行:export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
-
-
[oracle@source_pc ~]$ source .bash_profile
现在,查询不出现问号了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18903360/viewspace-2133203/
,如需转载,请注明出处,否则将追究法律责任。