Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。 1、设置NLS_SORT参数值2 t) @6 D% W" E( N6 N- q
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序* X. p7 X5 `7 |; u3 d- E, i
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序& B: N5 n' ~) h3 P
SCHINESE_PINYIN_M 按照拼音排序
% R8 A! F; L9 a+ }8 Z3 R1 { 2、Session级别的设置,修改ORACLE字段的默认排序方式:
4 S& p+ z5 _4 L0 p 按拼音:alter session set nls_sort = SCHINESE_PINYIN_M;! W" b. |* C8 s; E1 V3 P
按笔画:alter session set nls_sort = SCHINESE_STROKE_M;
, u3 d7 V8 K$ [& } 按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;* n7 `/ {/ e! B4 l( ~1 M" [
3、语句级别设置排序方式:3 @4 H: b: y D! I) z, z+ U0 ?
按照笔划排序8 J7 Z+ v6 w1 h
select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');
" D1 i& L- ^. z* J3 X 按照部首排序www.ExamW.CoM+ B7 l1 g% |& z c' L1 j, n5 E
select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');
0 A h& y1 Z. }$ h0 r 按照拼音排序,此为系统的默认排序方式; k0 ~* z& ^0 c$ h1 P8 X( B% d
select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');# B7 |$ u6 [$ B r
4、修改系统参数(数据库所在操作系统):$ N5 S1 i& W# ^3 r# g8 h7 M
set NLS_SORT=SCHINESE_RADICAL_M ;export NLS_SORT (sh)
3 q- ^9 h. C: \' [ setenv NLS_SORT SCHINESE_RADICAL_M (csh)1 r( x! G# ^* C1 N# u' l+ f
HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注册表) |