【ORDER】改變Oralce對簡體漢字的排序規則(拼音、部首、筆畫)(session級調整)

secooler發表於2010-02-25
下面的文章介紹了透過NLSSORT函式來限制Oracle對簡體中文的排序規則。本文將展示透過調整session級別的引數NLS_SORT來達到同樣的目的。
《【NLSSORT】改變Oralce對簡體漢字的排序規則(拼音、部首、筆畫)》
http://space.itpub.net/519536/viewspace-627797

1.實驗表T的資料內容概覽
sec@secooler> select * from t;

X
------------------------------







6 rows selected.

2.按照拼音進行排序
sec@secooler> alter session set nls_sort='SCHINESE_PINYIN_M';

Session altered.

sec@secooler> select * from t order by x;

X
------------------------------







6 rows selected.

3.按照“部首”(第一順序)和“筆畫數”(第二順序)進行排序
sec@secooler> alter session set nls_sort='SCHINESE_RADICAL_M';

Session altered.

sec@secooler> select * from t order by x;

X
------------------------------







6 rows selected.

單人旁的漢字在前,提手旁漢字在後;單人旁的三個漢字進一步又是按照筆畫數多少進行的排序。

4.按照“筆畫數”(第一順序)和“部首”(第二順序)進行排序
sec@secooler> alter session set nls_sort='SCHINESE_STROKE_M';

Session altered.

sec@secooler> select * from t order by x;

X
------------------------------







6 rows selected.

排在越後的漢字的筆畫數越多。

5.小結
條條大路通羅馬,無論是用NLSSORT函式還是在session級別調整NLS_SORT引數,更或者是直接調整客戶端的NLS_SORT環境變數,都可以達到我們的特殊需求。
每一種調整方法都有著自身的優勢和劣勢,有著各自的使用場合,具體問題需要具體分析。

Good luck.

secooler
10.02.25

-- The End --

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

相關文章