Oracle for Linux sqlplus 的乱码问题

一:故障重现

  首先在Linux shell下面连接 Oracle数据库

  $sqlplus /nolog

  SQL>conn /as sysdba

  SQL>startup(环境变量设置好以后,数据库会自动启动)

  SQL>如果有问题这里差不多能显示出来,就是一个个的?????,如果用远程软件连接的话,就可能是一个个方块.

  二:解决办法

  退出sqlplus,在Oracle家目录下查看环境变量文件

  ls -la

  我的是.bash_profile

  vim .bash_profile

  在下面一行加入

  NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

  export NLS_LANG

  退出vim

  三:$. ./.bash_profile(重新加载环境变量)

  再连数据库试试吧,应该没问题了,这里说的有个前提,就是装oracle的时候,选择的字符集是AMERICAN_AMERICA.ZHS16GBK

  如果是别的字符集,就用类似方法试试.同样,在/etc/sysconfig/i18n里设置下兼容的语言以及字体.

  select userenv(’language’) from dual

  显示的结果是:

  SIMPLIFIED CHINESE_CHINA.ZHS16GBK

  那就把字符集改写成中文的NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

  ==================================

  2011、7、11最新总结,最近的情况让我对上述结论有了新的看法,安装oracle数据库的经历少说有20次了,从11gR 1 32位跟64位,到11gR2 64位.装几次就会遇到不同的问题.R2 64位版本貌似对系统的要求比较高,内存资源池的共享区要求貌似不小.

  总之,今天有得到个心得结论.

  上面说的都不完全对,要自己试试以后才知道.这装好之后,select userenv(’language’) from dual; 结果就是简体中文,一点都没错我装的时候就是选得简体中文,这样报错之后能看个明白.

  可是不管我怎么变更shell下的语言,都是显示乱码,郁闷至极的时候我就把NLS_LANG=AMERICAN_AMERICA.ZHS16GBK结果好了.

猜你喜欢

转载自somkens.iteye.com/blog/2351312