ORACLE字符集查詢和設置(11g)轉


查詢數據庫字符集

select userenv('language') from dual;

linux中文字符集
/etc/sysconfig/i18n 
LANG=zh_CN.gb18030

#oracle11g 修改字符集 修改為ZHS16GBK
conn /as sysdba 
shutdown immediate; 
startup mount 
ALTER SYSTEM ENABLE RESTRICTED SESSION; 
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
ALTER SYSTEM SET AQ_TM_PROCESSES=0; 
alter database open; 
 
ALTER DATABASE CHARACTER SET ZHS16GBK; 

ERROR at line 1: 
ORA-12712: new character set must be a superset of old character set 
提示我們的字符集:新字符集必須為舊字符集的超集,這時我們可以跳過超集的檢查做更改: 

ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 
select * from v$nls_parameters; 
shutdown immediate; 
startup 
數據庫服務器字符集select * from nls_database_parameters,其來源於props$,是表示數據庫的字符集。
客戶端字符集環境select * from nls_instance_parameters,其來源於v$parameter,
會話字符集環境 select * from nls_session_parameters,其來源於v$nls_parameters,表示會話自己的設置,可能是會話的環境變量或者是alter session完成,如果會話沒有特殊的設置,將與nls_instance_parameters一致。
表示客戶端的字符集的設置,可能是參數文件,環境變量或者是注冊表
字符集要求一致,但是語言設置卻可以不同,語言設置建議用英文。如字符集是zhs16gbk,則nls_lang可以是American_America.zhs16gbk。
客戶端的字符集要求與服務器一致,才能正確顯示數據庫的非Ascii字符。如果多個設置存在的時候,alter session>環境變量>注冊表>參數文件
select * from v$nls_parameters; 
---------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM