時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(1)
看下面演示與分析:
SQL> select * from nls_database_parameters;
PARAMETER??? VALUE
------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY????? AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY?? AMERICA
NLS_NUMERIC_CHARACTERS?? .,
NLS_CHARACTERSET?? AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT??? DD-MON-RR
NLS_DATE_LANGUAGE? AMERICAN
NLS_SORT???? BINARY
NLS_TIME_FORMAT??? HH.MI.SSXFF AM
PARAMETER??? VALUE
------------------------------ ------------------------------
NLS_TIMESTAMP_FORMAT???? DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT? DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY? $
NLS_COMP???? BINARY
NLS_LENGTH_SEMANTICS???? BYTE
NLS_NCHAR_CONV_EXCP????? FALSE
NLS_NCHAR_CHARACTERSET?? AL16UTF16
NLS_RDBMS_VERSION? 9.2.0.4.0
20 rows selected.
windows客戶機上:
H:\Users\LuoTaoyang>chcp
活動代碼頁: 936
H:\Users\LuoTaoyang>set NLS_LANG=American_America.ZHS16GBK
SQL> DESC chartest;
Name? Null???? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
NAME???? VARCHAR2(20)
SQL> insert into chartest values(1,'123你好嗎ABC');
1 row created.
SQL> SELECT * from chartest;
ID NAME
---------- ----------------------------------------
1 123你好嗎ABC
SQL> select id,dump(name,1016) from chartest;
ID
----------
DUMP(NAME,1016)
--------------------------------------------------------------------------------
1
Typ=1 Len=15 CharacterSet=AL32UTF8: 31,32,33,e4,bd,a0,e5,a5,bd,e5,90,97,41,42,43
#‘123你好嗎ABC’在ZHS16GBK字符集下16進制代碼為:31 32 33 C4 E3 BA C3 C2 F0 41 42 43,之所以跟Oracle存儲的不同時因為客戶端字符集(ZHS16GBK)與Oracle主字符集(AL32UTF8)不同,Oracle在底層發(fā)生字符集轉(zhuǎn)換的原因。
H:\Users\LuoTaoyang>set NLS_LANG=American_America.AL32UTF8
SQL> select * from chartest;
ID NAME
---------- --------------------
1 123浣犲ソ鍚桝BC
#出現(xiàn)亂碼是因為此時Oracle客戶端字符集與Oracle主字符集相同,Oracle不發(fā)生字符集轉(zhuǎn)換。但在windows下依然用字符集(ZHS16GBK)顯示。
關(guān)鍵詞標簽:Oracle客戶端顯示亂碼
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法