`

Oracle oracle 多语言排序

阅读更多

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注册表)

Oracle 官方说明

NLS_SORT NLS_SORT specifies the collating sequence for ORDER BY queries. NLS_COMP NLS_COMP specifies the collation behavior of the database session.

 

Property

Description

Parameter type

String

Syntax

NLS_SORT = { BINARY | linguistic_definition }

Default value

Derived from NLS_LANGUAGE

Modifiable

ALTER SESSION

Range of values

BINARY or any valid linguistic definition name

 

  • If the value is BINARY, then the collating sequence for ORDER BY queries is based on the numeric value of characters (a binary sort that requires less system overhead).
  • If the value is a named linguistic sort, sorting is based on the order of the defined linguistic sort. Most (but not all) languages supported by the NLS_LANGUAGE parameter also support a linguistic sort with the same name.

    Note:

    Setting NLS_SORT to anything other than BINARY causes a sort to use a full table scan, regardless of the path chosen by the optimizer. BINARY is the exception because indexes are built according to a binary order of keys. Thus the optimizer can use an index to satisfy the ORDER BY clause when NLS_SORT is set to BINARY. If NLS_SORT is set to any linguistic sort, the optimizer must include a full table scan and a full sort in the execution plan.

         You must use the NLS_SORT operator with comparison operations if you want the linguistic sort behavior.

 

Property

Description

Parameter type

String

Syntax

NLS_COMP = { BINARY | LINGUISTIC | ANSI }

Default value

BINARY

Modifiable

ALTER SESSION

Basic

No

 

Values:

  • BINARY

Normally, comparisons in the WHERE clause and in PL/SQL blocks is binary unless you specify the NLSSORT function.

  • LINGUISTIC

Comparisons for all SQL operations in the WHERE clause and in PL/SQL blocks should use the linguistic sort specified in the NLS_SORT parameter. To improve the performance, you can also define a linguistic index on the column for which you want linguistic comparisons.

  • ANSI

A setting of ANSI is for backwards compatibility; in general, you should set NLS_COMP to LINGUISTIC

 

提高效率加索引

 

分享到:
评论

相关推荐

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习Oracle为提升语言效率而加入的支持特性,进而将两者综合考虑并在工作中加以应用。作者通过总结各自多年的软件开发和教学培训经验,与大家...

    Oracle Database 11g初学者指南--详细书签版

    第4章 SQL:结构化查询语言 77 4.1 SQL语句的组成 78 4.1.1 DDL 78 4.1.2 DML 79 4.2 基本的insert和select语句 79 4.2.1 insert 79 4.2.2 select 80 4.3 简单的where子句 81 4.3.1 带and/or的where子句 84 ...

    oracle11g

    第七章:复杂查询(上):多表连接技术 第八章:复杂查询(下):子查询 第二部分:用户及数据库对象 第九章:用户访问控制 第十章:Oracle的事务和锁 第十一章:索引 第十二章:约束 第十三章:视图 第十四...

    ORACLE9i_优化设计与系统调整

    §7.2 关于创建多个Oracle实例问题 93 §7.3 Oracle系统安装后的优化基础工作 94 §7.3.1 Oracle系统有关目录所有文件的保护 94 §7.3.2 避免新用户使用默认system系统表空间 94 §7.4 Oracle系统所在服务器的独立性...

    oracle实验报告

    (3) 学会使用高级SQL命令,排序、分组、自连接查询等。 (4) 学会使用SQL*PLUS命令显示报表,存储到文件等。 【实验内容】 一、 准备使用SQL*PLUS 1. 进入SQL*PLUS 2. 退出SQL*PLUS 3. 显示表结构命令DESCRIBE SQL>...

    Oracle_Database_11g完全参考手册.part2/3

    4.3 熟悉的Oracle语言 4.3.1 存储信息的表 4.3.2 结构化查询语言 4.3.3 简单的Oracle查询 4.3.4 为什么称作“关系 4.4 一些通用的、常见的示例 4.5 风险所在 4.6 新视角的重要性 4.6.1 变化的环境 4.6.2 代码、缩写...

    Oracle_Database_11g完全参考手册.part3/3

    4.3 熟悉的Oracle语言 4.3.1 存储信息的表 4.3.2 结构化查询语言 4.3.3 简单的Oracle查询 4.3.4 为什么称作“关系 4.4 一些通用的、常见的示例 4.5 风险所在 4.6 新视角的重要性 4.6.1 变化的环境 4.6.2 代码、缩写...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    Oracle数据库、SQL

    5.5多列排序 10 六、 单行函数的使用 11 6.1数值类型 11 6.2日期类型 11 6.3字符类型 13 6.4转换函数 14 6.5其他注意事项 14 七、 SQL语句中的分支 15 7.1分支表达式 15 7.2分支函数 15 八、 组函数 16 8.1报表统计...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    8.1 数据操作语言(DML)语句 262 8.1.1 INSERT 262 8.1.2 UPDATE 265 8.1.3 DELETE 268 8.1.4 TRUNCATE 270 8.1.5 MERGE 271 8.1.6 DML语句失败 272 8.2 控制事务 273 8.2.1 数据库事务 273 8.2.2 执行SQL...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    第4章 SQL:结构化查询语言 4.1 SOL语句的组成 4.1.1 DDL 4.1.2 DML 4.2 基本的insert和select语句 4.2.1 insert 4.2.2 select 4.3 简单的where子句 4.3.1 带and/or的where子句 4.3.2 带NOT的where子句 4.3.3 带...

    Oracle8i_9i数据库基础

    §1.3.2 PL/SQL语言 27 §1.4 登录到SQL*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 常用SQL*PLUS 附加命令简介 32 §1.5.1 登录到SQL*PLUS 32 §1.5.2 EXIT和QUIT 32 §1.5.3 ...

    oracle函数大全.doc

    将源字符串 sset从一个语言字符集转换到另一个目的dset字符集 SQL> select convert('strutz','we8hp','f7dec') "conversion" from dual; conver ------ strutz 44.HEXTORAW 将一个十六进制构成的字符串转换为二进制 ...

    oracle数据库经典题目

    1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须...

    Oracle DBA 参考手册

    1.4.2. 步骤#2: 彻底的学习查询语言 13 1.4.3. 步骤#3: 开始学习基本的数据库管理工作 13 1.4.4. 步骤#4: 阅读,阅读,再阅读 13 1.4.5. 步骤#5: 创建测试案例 13 1.4.6. 步骤#6: 找一个良师 14 1.4.7. 步骤#7: 参加...

    Oracle9i的init.ora参数中文说明

    则需要进行全表扫描, 以便将数据按照所定义的语言排序进行整理。 值范围: BINARY 或有效的语言定义名。 默认值: 从 NLS_LANGUAGE 中获得 nls_territory: 说明: 为以下各项指定命名约定, 包括日期和星期的编号, ...

    MYSQL,SQLSERVER,ORACLE常用的函数

    SQL> select instr('oracle traning','ra',1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from ....

Global site tag (gtag.js) - Google Analytics