最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle中的中文排序方式

来源:懂视网 责编:小采 时间:2020-11-09 10:06:34
文档

Oracle中的中文排序方式

Oracle中的中文排序方式:测试中文排序的版本: SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Rel
推荐度:
导读Oracle中的中文排序方式:测试中文排序的版本: SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Rel

测试中文排序的版本:

  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. 创建测试表

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

  3. 检查字符集配置

  确认数据库字符集 american_america.AL32UTF8

  SQL> select name,value$ from pro$;

  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 DDMON-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>

  深入确认字符集

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

  确认操作系统字符集设置

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

  4. 填写测试数据

  。。

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

  1 row created.

  SQL> insert into player values (20, '八千米死亡线');

  SQL> set pagesize 60

  SQL> select * from player;

  ID NAME

  

  

   1 中文

  2 中文拼音

  3 笔画输入法

  4 一

  5 二

  6 三

  7 四

  8 五

  9 六

  10 七

  12 八1

  13 八2

  14 九1

  15 十

  16 测试啊

  17 下午啦

  20 八千米死亡线

  17 rows selected.

  SQL>

  5. 开始测试,发现三个查询语句返回的结果一致

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

  ID NAME

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

  4 一

  15 十

  7 四

  10 七

  9 六

  8 五

  6 三

  3 笔画输入法

  13 八2

  14 九1

  12 八1

  5 二

  1 中文

  17 下午啦

  2 中文拼音

  16 测试啊

  20 八千米死亡线

  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 笔画输入法

  13 八2

  14 九1

  12 八1

  5 二

  1 中文

  17 下午啦

  2 中文拼音

  16 测试啊

  20 八千米死亡线

  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 笔画输入法

  13 八2

  14 九1

  12 八1

  5 二

  1 中文

  17 下午啦

  2 中文拼音

  16 测试啊

  20 八千米死亡线

  17 rows selected.

  

文档

Oracle中的中文排序方式

Oracle中的中文排序方式:测试中文排序的版本: SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Rel
推荐度:
标签: 方法 中文 方式
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top