久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Oracle 8i中字符集亂碼問(wèn)題析及其解決辦法

 aaie_ 2011-10-08

一,、問(wèn)題描述

  SQL Plus WorkSheet是一個(gè)窗口圖形界面的SQL語(yǔ)句編輯器,,對(duì)于那些喜歡窗口界面而不喜歡字符界面的用戶,該工具相對(duì)SQL/PLUS受到了很大的歡迎,。但從Oracle 8i以后,,如果安裝Oracle 8i時(shí)選取的是別于英語(yǔ)的字符集,對(duì)于我們中國(guó),,通常會(huì)選取簡(jiǎn)體中文字符集(ZHS16GBK),,安裝成功后,運(yùn)行SQL Plus WorkSheet程序,,會(huì)出現(xiàn)所有的中文顯示以及查詢結(jié)果均為亂碼的情況,。

  二,、問(wèn)題分析

  最初出現(xiàn)該問(wèn)題,首先懷疑就是安裝時(shí)字符集設(shè)置有問(wèn)題,,也就是說(shuō)沒(méi)有設(shè)置正確的簡(jiǎn)體中文字符集,。首先檢查數(shù)據(jù)庫(kù)字符集,在SQL/PLUS中,,運(yùn)行下面的SQL語(yǔ)句,,檢查所連接數(shù)據(jù)庫(kù)的字符集:

SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  查詢結(jié)果發(fā)現(xiàn)數(shù)據(jù)庫(kù)安裝時(shí)所選字符集為簡(jiǎn)體中文ZHS16GBK,說(shuō)明安裝時(shí)字符集設(shè)置完全正確,。第二步開(kāi)始懷疑是用戶客戶端字符集問(wèn)題,,檢查客戶端注冊(cè)表,打開(kāi)注冊(cè)表編輯程序(RegEdit),,在HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/NLS_LANG,,發(fā)現(xiàn)Oracle客戶端字符集為AMERICAN_AMERICA.ZHS16GBK,設(shè)置也完全正確,,可以排除是客戶端字符集設(shè)置錯(cuò)誤的問(wèn)題,。同時(shí)還有一個(gè)現(xiàn)象就是在同一個(gè)客戶端機(jī)器上SQL/PLUS中的查詢字符集顯示完全正常,這也說(shuō)明不是字符集設(shè)置問(wèn)題,,而是系統(tǒng)程序SQL/Plus Worksheet的問(wèn)題,。

  在Oracle 8i以前的版本中,從來(lái)沒(méi)有出現(xiàn)過(guò)這樣的情況,,這應(yīng)該和Oracle版本有關(guān),,我們知道Oracle 8i和它前面的版本一個(gè)顯著的區(qū)別就是大部分的Oracle系統(tǒng)程序,現(xiàn)在均采用Java驅(qū)動(dòng),,其實(shí)這也就是產(chǎn)生字符集亂碼問(wèn)題的根本所在,。非Java驅(qū)動(dòng)的程序,如SQL*Plus,,有一個(gè)系統(tǒng)參數(shù)NLS_LANG,,該參數(shù)在UNIX系統(tǒng)中設(shè)置在環(huán)境變量中,在Windows操作系統(tǒng)中設(shè)置在注冊(cè)表中,,這個(gè)參數(shù)決定了客戶端應(yīng)用程序的字符集,。而對(duì)于基于

 

et/Article/kfyy/java/Index.html">Java應(yīng)用的程序,如現(xiàn)在遇到的SQL*PLus Worksheet,,NLS_LANG參數(shù)對(duì)這類程序是不起任何作用的,。

  三、解決方案

  找到了問(wèn)題產(chǎn)生的原因后,,下面來(lái)討論如何解決該問(wèn)題,。對(duì)于Oracle Enterprise Manager中的所有工具,有一個(gè)配置文件名為dbappscfg.properties,,修改該文件即可解決上述問(wèn)題,。這個(gè)文件的位置在$ORACLE_HOME\sysman\config目錄下,,用任何的文本編輯器打開(kāi)該文件,在這個(gè)文件里面,,找到這樣一項(xiàng),,

# SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
  去掉注釋符#,同時(shí)將其修改為SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,。

  對(duì)于Windows操作系統(tǒng),,還需要修改一項(xiàng),在文件中找到# SQLPLUS_SYSTEMROOT=c:\\WINNT40,,去掉注釋符,,將其修改為你所在機(jī)器的操作系統(tǒng)主目錄。如操作系統(tǒng)的主目錄在D盤的Winnt下,,則將其修改為 SQLPLUS_SYSTEMROOT=d:\\WINNT,。

  對(duì)于后面一項(xiàng)的修改只對(duì)Windows操作系統(tǒng)進(jìn)行,對(duì)UNIX操作系統(tǒng)則不需要,。如果在Windows操作系統(tǒng)中不修改該項(xiàng),,在Oracle Enterprise Manager中,連接系統(tǒng)時(shí),,會(huì)提示如下的錯(cuò)誤:

ORA-12560 TNS:protocol adapter error
  或者

ORA-12545 Connect failed because target host or object does not exist
  修改完成后,,保存文件,退出編輯,。重新連接SQL PLUS Worksheet,,字符集亂碼問(wèn)題得到解決,顯示正確的簡(jiǎn)體中文字符集。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多