Oracle 文字排序,按照拼音,姓氏筆畫等

Oracle數據庫中文拼音排序問題,NLS_SORT設置

Oracle9i之前,中文是按照二進制編碼進行排序的。在oracle9i中新增了按照拼音、部首、筆畫排序功能。

1、設置NLS_SORT參數值

SCHINESE_RADICAL_M 按照部首(第一順序)、筆劃(第二順序)排序

SCHINESE_STROKE_M 按照筆劃(第一順序)、部首(第二順序)排序

SCHINESE_PINYIN_M 按照拼音排序

BINARY_CI 忽略大小寫的排序

2、Session級別的設置,修改ORACLE字段的默認排序方式:

按拼音:alter session set nls_sort = SCHINESE_PINYIN_M;

按筆畫:alter session set nls_sort = SCHINESE_STROKE_M;

按偏旁:alter session set nls_sort = SCHINESE_RADICAL_M;

忽略大小寫:alter session set nls_sort = BINARY_CI

3、語句級別設置排序方式:

按照筆劃排序

select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');

按照部首排序

select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');

按照拼音排序,此爲系統的默認排序方式

select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');

忽略大小寫 

select * from dept order by nlssort(name,'NLS_SORT=BINARY_CI');

4、修改系統參數(數據庫所在操作系統):

set NLS_SORT=SCHINESE_RADICAL_M ;export NLS_SORT (sh)

setenv NLS_SORT SCHINESE_RADICAL_M (csh)

HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win註冊表)

5、設置查詢時忽略大小寫方法:

alter session set nls_sort='BINARY_CI';

alter session set nls_comp='LINGUISTIC';

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章