oracle数据库里中文显示不出来,全是问号???

一:问题描述

有时,想用AS重新定义新的中文字段名称,或者在查询包含中文的字段时,查询结果总是出现很多问号,如图:

二:出错原因

环境变量NLS_LANG和数据库服务端字符集不一致

[html] view plain copy
  1. SQL> select userenv('language') from dual;  
  2.   
  3.    
  4.   
  5. USERENV('LANGUAGE')  
  6.   
  7. ----------------------------------------------------  
  8.   
  9. AMERICAN_AMERICA.WE8ISO8859P1  
  10.   
  11. [oracle@source_pc ~]$ echo $NLS_LANG  
  12.   
  13.   
  14. --显示结果为空  


 

三:解决办法

修改环境变量NLS_LANG

[html] view plain copy
  1. [oracle@source_pc ~]$  export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1  
  2.   
  3. --这样只是针对该窗口,临时生效,对于其他会话不生效。  
  4.   
  5. 要想永久生效,可以写入.bash_profile文件。  
  6.   
  7. [oracle@source_pc ~]$ pwd  
  8.   
  9. /home/oracle  
  10.   
  11. [oracle@source_pc ~]$ vi .bash_profile   
  12.   
  13. 添加一行:export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  
  14.   
  15. [oracle@source_pc ~]$ source .bash_profile  


现在,查询不出现问号了。

请使用浏览器的分享功能分享到微信等