在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,因此這里我需要把客戶端也設置成同樣的字符集,這樣才能不出現亂碼。