Oracle數(shù)據(jù)庫(kù)字符集及修改方式詳解
1、字符集概述
Oracle語(yǔ)言環(huán)境的描述包括三部分:language、territory、characterset(語(yǔ)言、地域、字符集)
- language:主要指定服務(wù)器消息的語(yǔ)言,提示信息顯示中文還是英文
- territory:主要指定服務(wù)器的數(shù)字和日期的格式
- characterset:是指字符集,一般國(guó)內(nèi)數(shù)據(jù)庫(kù)實(shí)際使用的字符集主要是ZHS16GBK、AL32UTF8
只要兩個(gè)數(shù)據(jù)庫(kù)的字符集(characterset)一樣,就可以相互導(dǎo)入導(dǎo)出數(shù)據(jù)
2、查詢Oracle字符集
2.1、查詢服務(wù)端字符集

NLS_NCHAR_CHARACTERSET 為國(guó)家字符集,主要是NCHAR、 NVARCHAR2 、NCLOB數(shù)據(jù)類型使用的字符集,一般是不用這幾種數(shù)據(jù)類型的
select * from nls_database_parameters;
2.2、查詢客戶端字符集
2.2.1、方式一

select * from nls_session_parameters;
2.2.2、方式二

select userenv('language') from dual;3、修改Oracle字符集
- 一般來(lái)說(shuō),除非萬(wàn)不得已,我們不建議修改oracle數(shù)據(jù)庫(kù)server端的字符集
- 如果需要修改字符集,通常需要導(dǎo)出數(shù)據(jù)庫(kù)數(shù)據(jù),重建數(shù)據(jù)庫(kù),再導(dǎo)入數(shù)據(jù)庫(kù)數(shù)據(jù)的方式來(lái)轉(zhuǎn)換
- 也可以通過(guò)ALTER DATABASE CHARACTER SET語(yǔ)句修改字符集,但創(chuàng)建數(shù)據(jù)庫(kù)后修改字符集是有限制的
- 只有新的字符集是當(dāng)前字符集的超集時(shí)才能修改數(shù)據(jù)庫(kù)字符集,例如UTF8是US7ASCII的超集,修改數(shù)據(jù)庫(kù)字符集可使用ALTER DATABASE CHARACTER SET UTF8
- 如果想跳過(guò)超集的檢查,則需要加INTERNAL_USE 關(guān)鍵字
ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8;
下面為修改字符集的步驟:

3.1、以sysdba角色連接到本地Oracle數(shù)據(jù)庫(kù)
sqlplus / as sysdba
3.2、以sysdba角色連接到Oracle數(shù)據(jù)庫(kù)實(shí)例
connect sys as sysdba;
3.3、開(kāi)啟"限制會(huì)話"模式以阻止新的會(huì)話連接到數(shù)據(jù)庫(kù)
ALTER SYSTEM ENABLE RESTRICTED SESSION;
3.4、修改數(shù)據(jù)庫(kù)字符集為ZHS16GBK
注意:執(zhí)行該步驟時(shí),需要關(guān)閉數(shù)據(jù)庫(kù)的其他會(huì)話,否則會(huì)報(bào)錯(cuò)“ORA-12721:當(dāng)其他會(huì)話處于活動(dòng)狀態(tài)時(shí),無(wú)法執(zhí)行操作”
ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
3.5、查詢數(shù)據(jù)庫(kù)字符集的設(shè)置值
SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';
3.6、關(guān)閉"限制會(huì)話"模式以允許新的會(huì)話連接到數(shù)據(jù)庫(kù)
ALTER SYSTEM DISABLE RESTRICTED SESSION;
本文參考
https://www.cnblogs.com/JennyYu/p/16241585.html
https://blog.csdn.net/QAQiiii/article/details/131412990
到此這篇關(guān)于Oracle數(shù)據(jù)庫(kù)字符集概述及修改方式的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)庫(kù)字符集內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle?數(shù)據(jù)庫(kù)層級(jí)遍歷查詢功能的實(shí)現(xiàn)
這篇文章主要介紹了Oracle?數(shù)據(jù)庫(kù)層級(jí)遍歷查詢,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
在Oracle數(shù)據(jù)庫(kù)中添加外鍵約束的方法詳解
這篇文章主要介紹了在Oracle數(shù)據(jù)庫(kù)中添加外鍵約束的方法,需要的朋友可以參考下2016-01-01
oralce和db2兼容開(kāi)發(fā)注意事項(xiàng)
這篇文章主要介紹了oralce和db2兼容開(kāi)發(fā)注意事項(xiàng)的相關(guān)資料,這里整理了幾個(gè)重要問(wèn)題及如何解決,需要的朋友可以參考下2016-11-11
在ORACLE移動(dòng)數(shù)據(jù)庫(kù)文件
在ORACLE移動(dòng)數(shù)據(jù)庫(kù)文件...2007-03-03
Oracle?listagg去重distinct的三種方式總結(jié)
這篇文章主要介紹了Oracle?listagg去重distinct的三種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

