Posted on 2006-10-12 21:41
Hally 閱讀(15834)
評論(0) 編輯 收藏 所屬分類:
學習隨筆
Q]怎么樣查看數據庫字符集
[A]數據庫服務器字符集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一致。
客戶端的字符集要求與服務器一致,才能正確顯示數據庫的非Ascii字符。如果多個設置存在的時候,alter session>環境變量>注冊表>參數文件
字符集要求一致,但是語言設置卻可以不同,語言設置建議用英文。如字符集是zhs16gbk,則nls_lang可以是American_America.zhs16gbk。
[Q]怎么樣修改字符集
[A]8i以上版本可以通過alter database來修改字符集,但也只限于子集到超集,不建議修改props$表,將可能導致嚴重錯誤。
Startup nomount;
Alter database mount exclusive;
Alter system enable restricted session;
Alter system set job_queue_process=0;
Alter database open;
Alter database character set zhs16gbk;