ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle数据库中汉字排序方式总结

oracle数据库中汉字排序方式总结

原创 Linux操作系统 作者:amy_oracle 时间:2010-06-24 15:08:29 0 删除 编辑

Oracle9i之前,中文是按照二进制编码进行排序的。

在oracle9i中新增了按照拼音、部首、笔划排序功能。设置NLS_SORT值

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

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

SCHINESE_PINYIN_M  按照拼音排序,系统的默认排序方式为拼音排序

 

一、在sql级实现

SELECT * FROM  amy.CNC_TOOLS_LOADING  ORDER BY  NLSSORT(machine_name ,'NLS_SORT=SCHINESE_PINYIN_M');

 

 二、在session级实现

alter session set NLS_SORT = SCHINESE_PINYIN_M;

 

SELECT * FROM  amy.CNC_TOOLS_LOADING  ORDER BY   machine_name;

  

 

三,在实例级实现

 

1、查询参数NLS_SORT

SELECT * FROM NLS_INSTANCE_PARAMETERS WHERE parameter='NLS_SORT';

 

2、修改参数NLS_SORT

ALTER SYSTEM SET NLS_SORT = SCHINESE_PINYIN_M  SCOPE=SPFILE;

 

3、重启DB。

 

4、查询参数NLS_SORT是否已修改。

SELECT * FROM NLS_INSTANCE_PARAMETERS WHERE parameter='NLS_SORT';

 

5、修改客户端注册表

 

要注意NLS参数设置有优先次序的,服务器初始化参数设置 处于第四级

以下是优先级顺序
1.SQL函数中设置
2.Alter session语句设置
3.客户环境变量
4.服务器初始化参数
5.默认值

 

NLS参数的优先级决定了客户环境变量比服务器初始化参数优先,因此需要修改客户环境变量。

开始,运行,输入regedit进入注册表,在HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0目录下修改NLS_SORT值为SCHINESE_PINYIN_M。

 

6、ok

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

请登录后发表评论 登录
全部评论

注册时间:2008-04-19

  • 博文量
    9
  • 访问量
    23417