绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
【ORDER】改变Oralce对简体汉字的排序规则(拼音、部首、笔画)(session级调整)
2020-01-08 16:24:53
下面的文章介绍了通过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 --

分享好友

分享这个小栈给你的朋友们,一起进步吧。

OCM联盟
创建时间:2019-12-27 14:04:54
OCM联盟(OCMU – Oracle Certified Master Union)是一群有着共同理想,共同志向的DBA的家。 ⚠️该小栈仅限ocm成员入驻!审核制! Oracle Certified Master (OCM) -Oracle认证大师,是Oracle认证的别,是对数据库从业人员的技术、知识和操作技能的别的认可。Oracle OCM是解决困难的技术难题和复杂的系统故障的佳Oracle专家人选,也是IT行业衡量IT专家和经理人的高专业程度及经验的基准。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 侯圣文@secooler
    栈主

小栈成员

查看更多
  • gaokeke123
  • ?
  • 山中老狐狸
  • 飘絮絮絮丶
戳我,来吐槽~