您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“怎么處理數(shù)據(jù)庫中文字符集亂碼”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么處理數(shù)據(jù)庫中文字符集亂碼”吧!
一、問題描述
同事說測試庫中文字符集亂碼,需要處理。
二、分析處理
影響oracle數(shù)據(jù)庫字符集最重要的參數(shù)是NLS_LANG參數(shù)。它的格式如下:
NLS_LANG = language_territory.charset
它有三個組成部分(語言、地域和字符集),每個成分控制了NLS子集的特性。其中:
Language 指定服務(wù)器消息的語言
territory 指定服務(wù)器的日期和數(shù)字格式
charset 指定字符集。
如:AMERICAN _ AMERICA. ZHS16GBK
SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.WE8MSWIN1252
在網(wǎng)絡(luò)上查詢資料后: 參考:https://blog.csdn.net/DBDoctor/article/details/51909047
將數(shù)據(jù)庫置于restricted mode下,是為了防止數(shù)據(jù)庫有新的非dba權(quán)限的連接
SQL> alter system enable restricted session; System altered.
修改字符集到ZHS16GBK
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1: ORA-12712: new character set must be a superset of old character set
提示:新字符集必須為舊字符集的超集,這時可以跳過超集的檢查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; ALTER DATABASE character set INTERNAL_USE ZHS16GBK ERROR at line 1: ORA-12721: operation cannot execute when other sessions are active
當(dāng)前有連接處于active狀態(tài),kill掉session或者重啟數(shù)據(jù)庫。
SQL> shutdown immediate; SQL> startup mount; SQL> alter system enable restricted session; System altered. SQL> alter database open; Database altered. SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; Database altered. SQL> alter system disable restricted session; System altered. SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.ZHS16GBK
到此,相信大家對“怎么處理數(shù)據(jù)庫中文字符集亂碼”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。