您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么處理數據庫中文字符集亂碼”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么處理數據庫中文字符集亂碼”吧!
一、問題描述
同事說測試庫中文字符集亂碼,需要處理。
二、分析處理
影響oracle數據庫字符集最重要的參數是NLS_LANG參數。它的格式如下:
NLS_LANG = language_territory.charset
它有三個組成部分(語言、地域和字符集),每個成分控制了NLS子集的特性。其中:
Language 指定服務器消息的語言
territory 指定服務器的日期和數字格式
charset 指定字符集。
如:AMERICAN _ AMERICA. ZHS16GBK
SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.WE8MSWIN1252
在網絡上查詢資料后: 參考:https://blog.csdn.net/DBDoctor/article/details/51909047
將數據庫置于restricted mode下,是為了防止數據庫有新的非dba權限的連接
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
當前有連接處于active狀態,kill掉session或者重啟數據庫。
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
到此,相信大家對“怎么處理數據庫中文字符集亂碼”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。