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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM