做網(wǎng)站選什么主機(jī)手機(jī)優(yōu)化器
提示
Oracle數(shù)據(jù)庫默認(rèn)的字符集編碼為US7ASCII,這個(gè)編碼是不支持中文的,如果想要在數(shù)據(jù)庫存儲(chǔ)中文,就需要修改編碼為
ZHS16GBK
或UTF-8
編碼和字符集是一個(gè)意思,只是叫法不一樣而已
前置條件
修改字符集的前提是知道我們現(xiàn)在用的是什么字符集
查詢數(shù)據(jù)庫字符集
SELECT?*?FROM?NLS_DATABASE_PARAMETERS?where?PARAMETER='NLS_CHARACTERSET';
一般情況下我們都是將字符集修改為UTF-8
或ZHS16GBK
(GB18030
)
修改編碼
????1. 首先以SYSDBA的身份登錄上去
????sqlplus?/?as?sysdba
????2. 關(guān)閉數(shù)據(jù)庫
????shutdown?immediate
????3. 以mount(掛載方式)打開數(shù)據(jù)庫
????startup?mount
????4. 設(shè)置session
????--?設(shè)置Oracle數(shù)據(jù)庫為限制訪問狀態(tài)ALTER?SYSTEM?ENABLE?RESTRICTED?SESSION;?--?關(guān)閉Oracle數(shù)據(jù)庫的Job?Queue進(jìn)程ALTER?SYSTEM?SET?JOB_QUEUE_PROCESSES=0;?--?關(guān)閉Oracle數(shù)據(jù)庫的Advanced?Queuing進(jìn)程ALTER?SYSTEM?SET?AQ_TM_PROCESSES=0;
????5. 啟動(dòng)數(shù)據(jù)庫
????alter?database?open;
????6. 修改字符集
????--?修改為ZHS16GBK/GB18030ALTER?DATABASE?CHARACTER?SET?ZHS16GBK;--?修改為UTF-8ALTER?DATABASE?CHARACTER?SET?AL32UTF8;
????????執(zhí)行此命令可能會(huì)報(bào)錯(cuò):ORA-12712: 新字符集必須為舊字符集的超集。
????????我們可以通過執(zhí)行這個(gè)sql進(jìn)行強(qiáng)制修改
????ALTER?DATABASE?CHARACTER?SET?INTERNAL_USE?ZHS16GBK;
????7. 關(guān)閉數(shù)據(jù)庫,重新啟動(dòng)
????shutdown?immediate;startup