Oracle資料庫中文拼音排序問題

來源:互聯網
上載者:User

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';

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.