首页 > 数据库 > Oracle > 正文
oracle对汉字的排序
2017-07-12 11:23:39       个评论    来源:lhjllff12345的专栏  
收藏    我要投稿

oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择:

按中文拼音进行排序:SCHINESE_PINYIN_M按中文部首进行排序:SCHINESE_RADICAL_M按中文笔画进行排序:SCHINESE_STROKE_M

而oracle 9i是对中文的排序是默认按拼音排序(并不是指NLS_SORT = SCHINESE_PINYIN_M,而是说SQL中不指定NLS_SORT时对中文列排序时默认按拼音)的,跟之前的2进制编码排序有所不同.具体用法如下:

直接写在sql中,例如: SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_PINYIN_M');SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_STROKE_M');SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_RADICAL_M'); 配置在初始化参数NLS_SORT中,这可以在数据库创建时指定,也可以通过alter session来修改.如果是前者,则在所有session中生效.例如: 使用select * from NLS_SESSION_PARAMETERS;语句可以看到NLS_SORT的值.更改配置文件:alter system set nls_sort='SCHINESE_PINYIN_M' scope=spfile;更改session:alter SESSION set NLS_SORT = SCHINESE_PINYIN_M;
点击复制链接 与好友分享!回本站首页
上一篇:oracle的分析函数over(Partitionby...)及开窗函数
下一篇:oracle用户权限设置
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站