zoukankan      html  css  js  c++  java
  • Oracle创建测试表

    试中文排序的数据库版本:

      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  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           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 selected2881064151.

      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.

  • 相关阅读:
    ASP.NET 中Request.QueryString 中的key
    我要爱死这个markdown 了
    WindowsPhone 8 开发 之 本地数据库应用
    java对象详解
    java内存分析
    java 成长之路
    springboot hessian
    zabbix 3.0 安装 ubuntu环境
    dubbo+zookeeper简单环境搭建
    大型网站及架构演进过程
  • 原文地址:https://www.cnblogs.com/cbryge/p/6054848.html
Copyright © 2011-2022 走看看