</p> 20 rows selected.' M1 j2 T/ C0 j j
windows客户机上:3 I" @3 }1 @# J9 L4 S" g
H:UsersLuoTaoyang>chcp. Q3 N! `' n' T! e t
勾今世码页: 936* }6 z9 C4 A% c* k9 {8 B
H:UsersLuoTaoyang>set NLS_LANG=American_America.ZHS16GBK
% a* m1 h/ Q8 U6 L/ U+ w1 l) H+ { SQL> DESC chartest;
: N! f M, F( A0 R2 N2 C Name Null? Type----------------------------------------- -------- ----------------------------+ u3 F$ L8 k8 e4 k4 L
ID NUMBER(38)
9 c" L. z; [! @+ c7 n7 j+ h% z4 k: f0 M, c NAME VARCHAR2(20)
, j$ `; L! o ]% e SQL> insert into chartest values(1,'123你好吗ABC');
3 j' E& `4 l. _' B! y9 H 1 row created.
( u" w0 D8 u# P. }9 C/ w- k SQL> SELECT * from chartest;+ ^0 A( M$ k+ ^5 `3 V' @' P9 Y1 h
ID NAME
* h1 Q; Z) N2 `( y4 t: m ---------- ---------------------------------------- k# g( [& L! O
1 123你好吗ABC
, j. ~ X6 W1 u/ A5 l* F SQL> select id,dump(name,1016) from chartest;
/ _- Q, `( ]8 Q- F8 ^1 }! g2 _ ID
" N/ l- a C( E, C c ----------
6 F$ E; W1 V0 G1 d7 p7 K DUMP(NAME,1016)
$ t( @9 ^1 a! ?2 V+ E --------------------------------------------------------------------------------5 m9 k% X* R, [( c, Y$ D
1
: f' l' A: ~* ]5 T* Q0 p, O Typ=1 Len=15 CharacterSet=AL32UTF8: 31,32,33,e4,bd,a0,e5,a5,bd,e5,90,97,41,42,43
2 l, L% S! t( V8 q #‘123你好吗ABC’在ZHS16GBK字符集下16进制代码为:31 32 33 C4 E3 BA C3 C2 F0 41 42 43,之所以跟Oracle存储的分歧时因为客户端字符集(ZHS16GBK)与Oracle主字符集(AL32UTF8)分歧,Oracle在底层发生字符集转换的原因。8 A; G4 W) @( e) Z' F) P- q
H:UsersLuoTaoyang>set NLS_LANG=American_America.AL32UTF8, o2 T# X; {, V- |5 p; [# ^
SQL> select * from chartest;
! J3 S' P: R9 } N ID NAME
6 q" T0 r i J4 v: T2 X ---------- --------------------
. w# ]5 N; ^2 T 1 123浣犲ソ鍚桝BC' x5 Q7 A0 B6 O3 \& f+ x
#呈锨氚搽是因为此时Oracle客户端字符集与Oracle主字符集不异,Oracle不贰生字符集转换。但在windows下依然用字符集(ZHS16GBK)显示。 |