Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。 1、设置NLS_SORT参数值1 B- q8 l2 F X7 G) j1 X+ F
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序9 I3 |0 z% u. [# o! B
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
# m! g: i8 Y! x) P SCHINESE_PINYIN_M 按照拼音排序! `- Q8 Z& V5 m6 p% j) F: g5 H; n
2、Session级别的设置,修改ORACLE字段的默认排序方式:
* h7 J) N* D0 F V! @2 g 按拼音:alter session set nls_sort = SCHINESE_PINYIN_M;( B3 o) X+ [/ @. O h$ X0 x
按笔画:alter session set nls_sort = SCHINESE_STROKE_M;
, Y2 f. o$ D1 [5 C8 \2 I6 _ 按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;% F% J, Q* S' r* j8 Q
3、语句级别设置排序方式:
5 f5 ?/ T$ e! G- y4 E 按照笔划排序
4 H" _3 x Z% x select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');+ J- Y+ u6 }6 n+ O7 P$ t2 i
按照部首排序www.ExamW.CoM
0 C- E. b# p- i8 ? select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');
2 D3 t2 ?* n" M3 }. ] 按照拼音排序,此为系统的默认排序方式
' B& C9 |$ U8 u select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
$ A5 }8 C1 w3 V# e: t0 w 4、修改系统参数(数据库所在操作系统):
8 G3 y$ S1 j' U5 g set NLS_SORT=SCHINESE_RADICAL_M ;export NLS_SORT (sh)' Q' q3 s& N4 v0 c8 y/ V) T. h" b
setenv NLS_SORT SCHINESE_RADICAL_M (csh)
$ |8 m6 c- W. {/ d8 V! ~) R' R6 U. J HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注册表) |