Oracle环境变量与中文显示的问题

在CentOS(linux)下安装Oracle,对环境变量的设置有一些讲究。

一般我们可以把环境变量设置在/etc/profile文件中:

# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=Oracle11gR2; export ORACLE_HOSTNAME
ORACLE_BASE=/opt/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_UNQNAME=oracl ;export ORACLE_UNQNAME
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi

export LANG=
#export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

今天需要重点说一说最后三行内容!

(一)、环境变量LANG的设置是为了让Putty这个客户端在显示时避免出现乱码。我安装的Linux一般把语言设置成英文,这样/etc/sysconfig/i18n里是LANG="en_US.UTF-8"(不是我的英文好,主要是Linux下中文字体设置太复杂,呵呵!所以我一般设置为英文环境,但是可以显示中文。)

(二)、环境变量NLS_LANG的设置是为了避免数据库中的中文乱码。从网上查到的资料说这个环境变量是分为三个部分的,

第一部分是语言,我理解为数据库工具(SQLPlus、Proc*C)显示时所采用的语言,就好像是说中文版的Word,还是英文版的Word。

第二部分是货币显示的格式,可以理解为是显示成年月日还是月日年(中文习惯、英文习惯)。

第三部分最重要,它是数据库的字符编码集。因为我一般安装数据库时,字符集都设置的是ZHS16GBK,因此这里我需要把客户端也设置成同样的字符集,这样才能不出现乱码。

原文地址:https://www.cnblogs.com/jycjy/p/6941412.html