Oracle 中汉字排序问题

oracle9i对汉字的排序默认为拼音排序,可是本人最近发新排列的结果并不准确,通过上网查找,现解决方法如下:

方法1: 设定环境变量
set NLS_SORT=SCHINESE_RADICAL_M ;export NLS_SORT (sh)
or setenv NLS_SORT SCHINESE_RADICAL_M (csh)
or regedit
HKLC/SOFTWARE/ORACLE/home0/NLS_SORT (win)

方法2: 在session中修改
alter session set NLS_SORT='SCHINESE_RADICAL_M'

方法3: 直接使用NLSSORT函数 (推荐)
select name,id from t
order by NLSSORT(name,'NLS_SORT = SCHINESE_STROKE_M')

设置NLS_SORT值:

SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序

SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序

SCHINESE_PINYIN_M 按照拼音排序

来源: http://hi.baidu.com/wangchao_cn/blog/item/dfb9e53d90723ec29e3d6217.html

你可能感兴趣的:(oracle)