ITPub博客

首页 > 数据库 > Oracle > 【ORDER】改变Oralce对简体汉字的排序规则(拼音、部首、笔画)(session级调整)

【ORDER】改变Oralce对简体汉字的排序规则(拼音、部首、笔画)(session级调整)

原创 Oracle 作者:OCMU联盟 时间:2010-02-25 23:01:22 0 删除 编辑
下面的文章介绍了通过NLSSORT函数来限制Oracle对简体中文的排序规则。本文将展示通过调整session级别的参数NLS_SORT来达到同样的目的。
《【NLSSORT】改变Oralce对简体汉字的排序规则(拼音、部首、笔画)》
http://space.itpub.net/519536/viewspace-627797

1.实验表T的数据内容概览
sec@secooler> select * from t;

X
------------------------------
侯
你
做
拉
推
拆

6 rows selected.

2.按照拼音进行排序
sec@secooler> alter session set nls_sort='SCHINESE_PINYIN_M';

Session altered.

sec@secooler> select * from t order by x;

X
------------------------------
拆
侯
拉
你
推
做

6 rows selected.

3.按照“部首”(第一顺序)和“笔画数”(第二顺序)进行排序
sec@secooler> alter session set nls_sort='SCHINESE_RADICAL_M';

Session altered.

sec@secooler> select * from t order by x;

X
------------------------------
你
侯
做
拆
拉
推

6 rows selected.

单人旁的汉字在前,提手旁汉字在后;单人旁的三个汉字进一步又是按照笔画数多少进行的排序。

4.按照“笔画数”(第一顺序)和“部首”(第二顺序)进行排序
sec@secooler> alter session set nls_sort='SCHINESE_STROKE_M';

Session altered.

sec@secooler> select * from t order by x;

X
------------------------------
你
拆
拉
侯
做
推

6 rows selected.

排在越后的汉字的笔画数越多。

5.小结
条条大路通罗马,无论是用NLSSORT函数还是在session级别调整NLS_SORT参数,更或者是直接调整客户端的NLS_SORT环境变量,都可以达到我们的特殊需求。
每一种调整方法都有着自身的优势和劣势,有着各自的使用场合,具体问题需要具体分析。

Good luck.

secooler
10.02.25

-- The End --

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70034820/viewspace-2994212/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
OCM联盟( Oracle Certified Master Union)是由侯圣文(ACE总监)发起的一个公益组织,旨在为每一个OCM大师提供一个可以继续展示自己才华,技术和实力的平台。

注册时间:2007-05-27

  • 博文量
    799
  • 访问量
    8407026