新聞中心
隨著中國(guó)信息化建設(shè)的不斷推進(jìn),越來(lái)越多的企業(yè)開(kāi)始使用Oracle數(shù)據(jù)庫(kù)。Oracle數(shù)據(jù)庫(kù),在企業(yè)信息化建設(shè)中,遍布著方便快捷、安全可靠的優(yōu)點(diǎn)。但是,在使用中文字符集方面,和其他數(shù)據(jù)庫(kù)一樣,Oracle數(shù)據(jù)庫(kù)也存在亂碼問(wèn)題。那么,在使用Oracle數(shù)據(jù)庫(kù)時(shí)碰到的中文亂碼問(wèn)題,我們應(yīng)該如何解決呢?本文將為你詳細(xì)介紹Oracle數(shù)據(jù)庫(kù)中文亂碼問(wèn)題的解決方法。

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),大渡口網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:大渡口等地區(qū)。大渡口做網(wǎng)站價(jià)格咨詢:028-86922220
一、數(shù)據(jù)庫(kù)字符集確認(rèn)
在Oracle數(shù)據(jù)庫(kù)中,可以運(yùn)行以下語(yǔ)句查詢數(shù)據(jù)庫(kù)的默認(rèn)字符集:
SELECT * FROM nls_database_parameters where parameter=’NLS_CHARACTERSET’;
如果查詢結(jié)果是‘ZHS16GBK’,那就意味著該數(shù)據(jù)庫(kù)是使用GB2312碼表存儲(chǔ)它的字符數(shù)據(jù)的。如果是‘AL32UTF8’,就意味該數(shù)據(jù)庫(kù)是使用Unicode標(biāo)準(zhǔn)的UTF-8編碼。兩者編碼方式不同,在中文亂碼問(wèn)題的解決上也有些區(qū)別。
二、客戶端字符集確認(rèn)
在Oracle客戶端中,默認(rèn)字符集是客戶端操作系統(tǒng)的字符集,可以運(yùn)行以下語(yǔ)句查詢客戶端的默認(rèn)字符集:
SELECT userenv(‘language’) language FROM dual;
如果查詢結(jié)果是‘SIMPLIFIED CHINESE_CHINA.ZHS16GBK’,那就意味著客戶端的默認(rèn)字符集也是GB2312碼表。如果是‘AMERICAN_AMERICA.AL32UTF8’,就意味著客戶端采用了UTF-8編碼。與數(shù)據(jù)庫(kù)的字符集不同,容易導(dǎo)致中文亂碼問(wèn)題。在解決中文亂碼問(wèn)題時(shí),需要將客戶端字符集調(diào)整為與數(shù)據(jù)庫(kù)字符集一致。具體方法如下:
1.將客戶端操作系統(tǒng)從簡(jiǎn)體中文更改為英文操作系統(tǒng)。
2.將客戶端的字符集重新設(shè)置為數(shù)據(jù)庫(kù)的字符集。
a.在Windows上
打開(kāi)CMD控制臺(tái),使用以下命令:
set NLS_LANG = CHINESE_PRC.ZHS16GBK
注意:將上述命令中的字符集類型與數(shù)據(jù)庫(kù)字符集類型相匹配。
b.在Linux上
使用vi打開(kāi)環(huán)境變量文件(如:/home/admin/.bashrc) ,并在最后一行添加以下代碼:
export NLS_LANG=‘CHINESE_SIMPLIFIED.ZHS16GBK’
修改后,再運(yùn)行‘source .bashrc’ 這個(gè)命令讓環(huán)境配置立即生效。
三、修改Oracle數(shù)據(jù)庫(kù)字符集
如果客戶端字符集設(shè)置和數(shù)據(jù)庫(kù)字符集設(shè)置不匹配無(wú)法進(jìn)行更改(如公司有蘋(píng)果電腦),還可以考慮修改數(shù)據(jù)庫(kù)字符集,讓其與客戶端字符集一致。但是,客戶端字符集修改不易,一般情況下,還是推薦按照上述第二種方式解決中文亂碼問(wèn)題。如果必須更改數(shù)據(jù)庫(kù)字符集,可以按照以下步驟操作:
1.備份數(shù)據(jù)
2.備份數(shù)據(jù)庫(kù)
3.查看Oracle系統(tǒng)表
SELECT owner, table_name, column_name, data_type, data_length, char_length, data_precision, data_scale, nullable, data_default, column_id
FROM dba_tab_columns
WHERE table_name IN (‘ALL_TAB_COLUMNS’, ‘ALL_TAB_COLS’, ‘USER_TAB_COLUMNS’, ‘USER_TAB_COLS’, ‘DBA_TAB_COLUMNS’, ‘DBA_TAB_COLS’)
ORDER BY 1, 2, column_id;
4.導(dǎo)出數(shù)據(jù)
使用EXPDP命令將庫(kù)中的數(shù)據(jù)導(dǎo)出:
expdp username/password directory=export dumpfile=mydb.dmp logfile=export.log schemas=mydb
5.卸載并刪除數(shù)據(jù)庫(kù)
6.在新編碼格式下創(chuàng)建新數(shù)據(jù)庫(kù)
7.導(dǎo)入數(shù)據(jù)
使用IMPDP命令將數(shù)據(jù)導(dǎo)入新的數(shù)據(jù)庫(kù):
impdp username/password directory=export dumpfile=mydb.dmp logfile=import.log remap_schema=mydb:mydb
四、在數(shù)據(jù)庫(kù)中處理亂碼數(shù)據(jù)
如果中文字符集已經(jīng)被拒絕或亂碼數(shù)據(jù)已經(jīng)被存儲(chǔ),你仍然可以通過(guò)以下方法處理:
1.將數(shù)據(jù)庫(kù)表中的亂碼數(shù)據(jù)導(dǎo)出到一個(gè)文本文件
2.使用記事本打開(kāi)該文本文件,并另存為ANSI格式。這將把所有的特殊字符轉(zhuǎn)換為它們的十六進(jìn)制值。
3.將這些十六進(jìn)制值轉(zhuǎn)換為相應(yīng)的ANSI字符,并修改文本文件的字符集格式為GB2312(和數(shù)據(jù)庫(kù)一致)。
4.將新的文本文件的內(nèi)容加載到數(shù)據(jù)庫(kù)表中,以替換原始亂碼數(shù)據(jù)。
總而言之,在使用Oracle數(shù)據(jù)庫(kù)時(shí),中文亂碼問(wèn)題經(jīng)常會(huì)出現(xiàn),而且解決中文亂碼問(wèn)題需要有一定的技巧。本文從數(shù)據(jù)庫(kù)字符集確認(rèn)、客戶端字符集確認(rèn)、修改Oracle數(shù)據(jù)庫(kù)字符集、在數(shù)據(jù)庫(kù)中處理亂碼數(shù)據(jù)等方面為您介紹了解決中文亂碼的方法。具體情況具體分析,希望本文能對(duì)您有所幫助。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
如何解決oracle數(shù)據(jù)庫(kù)查詢時(shí)出現(xiàn)亂碼問(wèn)題?
oracle數(shù)據(jù)庫(kù)查詢時(shí)出現(xiàn)亂碼,很可能是該數(shù)據(jù)庫(kù)的字符集設(shè)定枯燃腔不支持中文,但是表中數(shù)據(jù)含有中文,所以變?yōu)閬y段緩碼。
如果是字符集沒(méi)衫原因,解決方法如下:
1、shutdown immediate; 關(guān)閉數(shù)據(jù)庫(kù)
2、startup mount; 開(kāi)啟數(shù)據(jù)庫(kù)至掛載模式(只掛實(shí)例,不啟動(dòng)數(shù)據(jù)庫(kù))
3、alter system enable restricted session;開(kāi)啟會(huì)話限制
4、alter system set aq_tm_processes=0;修改系統(tǒng)參數(shù)
5、alter system set job_queue_processes=0;修改系統(tǒng)參數(shù)
6、alter database open;啟動(dòng)數(shù)據(jù)庫(kù)為open
7、alter database national character set internal_user (zhs16gbk);修改字符集
8、alter system disable restricted session;關(guān)閉會(huì)話限制
括號(hào)內(nèi)可填寫(xiě)字符集類型,zhs16gbk、AL32UTF8等字符集都支持中文。
請(qǐng)問(wèn)是不是你oracle在linux環(huán)境.而linux環(huán)境適應(yīng)的語(yǔ)言不是中文環(huán)境
在注冊(cè)表信橋中加入
orcl數(shù)據(jù)庫(kù)中文顯示不正確的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于orcl數(shù)據(jù)庫(kù)中文顯示不正確,Oracle數(shù)據(jù)庫(kù)中文亂碼問(wèn)題解決方法,如何解決oracle數(shù)據(jù)庫(kù)查詢時(shí)出現(xiàn)亂碼問(wèn)題?的信息別忘了在本站進(jìn)行查找喔。
四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)、開(kāi)啟建站+互聯(lián)網(wǎng)銷(xiāo)售服務(wù),與企業(yè)客戶共同成長(zhǎng),共創(chuàng)價(jià)值。
網(wǎng)頁(yè)題目:Oracle數(shù)據(jù)庫(kù)中文亂碼問(wèn)題解決方法(orcl數(shù)據(jù)庫(kù)中文顯示不正確)
文章網(wǎng)址:http://m.fisionsoft.com.cn/article/cophehe.html


咨詢
建站咨詢
