Oracle資料庫中文拼音,部首,筆畫排序問題,NLS_SORT設定

tolywang發表於2011-01-14


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

1、設定NLS_SORT引數值
      SCHINESE_RADICAL_M 按照部首(第一順序)、筆劃(第二順序)排序
      SCHINESE_STROKE_M 按照筆劃(第一順序)、部首(第二順序)排序
      SCHINESE_PINYIN_M 按照拼音排序

2、Session級別的設定,修改ORACLE欄位的預設排序方式:
      按拼音:alter session set nls_sort = SCHINESE_PINYIN_M;
      按筆畫:alter session set nls_sort = SCHINESE_STROKE_M;
      按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;

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

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登錄檔)

 

ALTER system set NLS_SORT = 'SCHINESE_PINYIN_M' scope=spfile ; 重新啟動DB
或者
ALTER SESSION SET NLS_SORT='SCHINESE_PINYIN_M';    排序影響整個會話

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-683815/,如需轉載,請註明出處,否則將追究法律責任。

相關文章