查看oracle數(shù)據(jù)庫字符集命令(oracle查詢數(shù)據(jù)庫字符集語句)
查看oracle數(shù)據(jù)庫字符集命令(oracle查詢數(shù)據(jù)庫字符集語句),小編帶你了解更多相關信息。
1.查看數(shù)據(jù)庫字符集
數(shù)據(jù)庫服務器字符集:
select* from nls_database_parameters;
其來源于props$,是表示數(shù)據(jù)庫的字符集。
客戶端字符集環(huán)境:
select* from nls_instance_parameters;
其來源于v$parameter,表示客戶端的字符集的設置,可能是參數(shù)文件,環(huán)境變量或者是注冊表
會話字符集環(huán)境:
select* from nls_session_parameters;
其來源于v$nls_parameters,表示會話自己的設置,可能是會話的環(huán)境變量或者是alter session完成,如果會話沒有特殊的設置,將與nls_instance_parameters一致。
2.修改字符集
字符集可以通過alter database來修改字符集,但也只限于子集到超集,不建議修改props$表,否則可能導致嚴重錯誤。
例如:修改數(shù)據(jù)庫服務端字符集為:ZHS16GBK
SQL>shutdownimmediate
SQL>STARTUPMOUNT
SQL>ALTERSYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTERSYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTERSYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTERDATABASE OPEN;
SQL>ALTERDATABASE CHARACTER SET ZHS16GBK;
若出現(xiàn)ORA-12721的錯誤(如下:)使用INTERNAL_USE可以跳過超集的檢查:
ERROR at line1:ORA-12721: operation cannot execute when other sessions are active
SQL>ALTERDATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWNIMMEDIATE
SQL>STARTUP
NLS_NCHAR_CHARACTERSET與NLS_CHARACTERSET的區(qū)別
NLS_CHARACTERSET為數(shù)據(jù)庫的字符集,影響數(shù)據(jù)庫中的varchar與clob等字段中的值
NLS_NCHAR_CHARACTERSET為國家字符集,影響數(shù)據(jù)庫中的nvarchar與nclob等字段中的值。
如將數(shù)據(jù)庫中NLS_NCHAR_CHARACTERSET的UTF8修改為AL16UTF16:
SQL>ALTER DATABASE NATIONAL CHARACTER SETINTERNAL_USE AL16UTF16;
本站部分文章來自網(wǎng)絡或用戶投稿。涉及到的言論觀點不代表本站立場。閱讀前請查看【免責聲明】發(fā)布者:方應,如若本篇文章侵犯了原著者的合法權益,可聯(lián)系我們進行處理。本文鏈接:http://www.gdyuanyu.cn/tougao/92423.html