IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類(lèi)|軟件專(zhuān)題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)Oracle → Oracle中的中文排序方式

Oracle中的中文排序方式

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

  1. 測(cè)試中文排序的數(shù)據(jù)庫(kù)版本:

  SQL> select * from v$version;

  BANNER

  --------------------------------------------------------------------------------

  Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

  PL/SQL Release 11.1.0.6.0 - Production

  CORE??? 11.1.0.6.0????? Production

  TNS for Linux: Version 11.1.0.6.0 - Production

  NLSRTL Version 11.1.0.6.0 - Production

  2. 創(chuàng)建測(cè)試表

  create table player (id number(16, 0), name varchar2(30));

  3. 檢查字符集配置

  確認(rèn)數(shù)據(jù)庫(kù)字符集 american_america.AL32UTF8

  SQL>? select? name,value$? from? props$;

  NAME?? VALUE$

  ------------------------------ ------------------------------

  DICT.BASE??? 2

  DEFAULT_TEMP_TABLESPACE? TEMP

  DEFAULT_PERMANENT_TABLESPACE?? USERS

  DEFAULT_EDITION??? ORA$BASE

  Flashback Timestamp TimeZone?? GMT

  TDE_MASTER_KEY_ID

  DEFAULT_TBS_TYPE?? SMALLFILE

  NLS_LANGUAGE AMERICAN

  NLS_TERRITORY????? AMERICA

  NLS_CURRENCY $

  NLS_ISO_CURRENCY?? AMERICA

  NLS_NUMERIC_CHARACTERS?? .,

  NLS_CHARACTERSET?? AL32UTF8

  NLS_CALENDAR GREGORIAN

  NLS_DATE_FORMAT??? DD-MON-RR

  NLS_DATE_LANGUAGE? AMERICAN

  NLS_SORT???? BINARY

  NLS_TIME_FORMAT??? HH.MI.SSXFF AM

  NLS_TIMESTAMP_FORMAT???? DD-MON-RR HH.MI.SSXFF AM

  NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR

  NLS_TIMESTAMP_TZ_FORMAT? DD-MON-RR HH.MI.SSXFF AM TZR

  NLS_DUAL_CURRENCY? $

  NLS_COMP???? BINARY

  NLS_LENGTH_SEMANTICS???? BYTE

  NLS_NCHAR_CONV_EXCP????? FALSE

  NLS_NCHAR_CHARACTERSET?? AL16UTF16

  NLS_RDBMS_VERSION? 11.1.0.6.0

  GLOBAL_DB_NAME???? ORA11G

  EXPORT_VIEWS_VERSION???? 8

  WORKLOAD_CAPTURE_MODE

  WORKLOAD_REPLAY_MODE

  DBTIMEZONE?? 00:00

  32 rows selected.

  SQL>

  深入確認(rèn)字符集

  SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET,

  DECODE(TYPE#, 1,

  DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2', 'UNKOWN'),

  9,

  DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'),

  96,

  DECODE(CHARSETFORM, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),

  112,

  DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN

  FROM SYS.COL$

  WHERE CHARSETFORM IN (1, 2)

  AND TYPE# IN (1, 9, 96, 112);

  確認(rèn)操作系統(tǒng)字符集設(shè)置

  [ora11g@bj55 ~]$ export NLS_LANG=american_america.al32utf8

  4. 填寫(xiě)測(cè)試數(shù)據(jù)

  。。。。

  SQL> insert into player values (17, '下午啦');

  1 row created.

  SQL> insert into player values (20, '八千米死亡線(xiàn)');

  SQL> set pagesize 60

  SQL>? select * from player;

  ID NAME

#p#副標(biāo)題#e#

  1 中文

  2 中文拼音

  3 筆畫(huà)輸入法

  4 一

  5 二

  6 三

  7 四

  8 五

  9 六

  10 七

  12 八1

  13 八2

  14 九1

  15 十

  16 測(cè)試啊

  17 下午啦

  20 八千米死亡線(xiàn)

  17 rows selected.

  SQL>

  5.? 開(kāi)始測(cè)試,發(fā)現(xiàn)三個(gè)查詢(xún)語(yǔ)句返回的結(jié)果一致

  SQL> select * from player order by??? nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');

  ID NAME

  ---------- --------------------

  4 一

  15 十

  7 四

  10 七

  9 六

  8 五

  6 三

  3 筆畫(huà)輸入法

  13 八2

  14 九1

  12 八1

  5 二

  1 中文

  17 下午啦

  2 中文拼音

  16 測(cè)試啊

  20 八千米死亡線(xiàn)

  17 rows selected.

  SQL> select * from player order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');

  ID NAME

  ---------- --------------------

  4 一

  15 十

  7 四

  10 七

  9 六

  8 五

  6 三

  3 筆畫(huà)輸入法

  13 八2

  14 九1

  12 八1

  5 二

  1 中文

  17 下午啦

  2 中文拼音

  16 測(cè)試啊

  20 八千米死亡線(xiàn)

  17 rows selected.

  SQL> select * from player order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');

  ID NAME

  ---------- --------------------------------

  4 一

  15 十

  7 四

  10 七

  9 六

  8 五

  6 三

  3 筆畫(huà)輸入法

  13 八2

  14 九1

  12 八1

  5 二

  1 中文

  17 下午啦

  2 中文拼音

  16 測(cè)試啊

  20 八千米死亡線(xiàn)

  17 rows selected.

  囧,疑似碰上bug,切換到10gR2下看看

  SQL> select * from v$version;

  BANNER

  ----------------------------------------------------------------

  Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

關(guān)鍵詞標(biāo)簽:Oracle

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法