`

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排序方法拼音,部首,笔画

    在Oracle数据库中,为了适应不同语言环境下的数据处理需求,提供了一套强大的多语言支持工具。其中,“NLS_SORT”参数允许用户按照不同的规则对数据进行排序,这对于处理中文数据尤为重要。本文将详细介绍如何使用...

    ORACLE数据库及SQL语言考试题一含答案.pdf

    4. 索引:对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。索引不论逻辑上和物理上都与相关的表的数据无关,索引需要独立的存储空间,所以索引在创建之初就需要设置对应的...

    DatabaseHelper_oracle_c#Oracle_C#_ManagedDataAccess_oracle操作_

    在.NET开发环境中,使用C#语言与Oracle数据库进行交互是一种常见的需求。Oracle.ManagedDataAccess是Oracle公司提供的一个客户端库,专门用于C#等.NET语言的Oracle数据库连接和操作。这个库是完全托管的,无需依赖...

    oracle8驱动包.zip

    orai18n.jar通常包含了Oracle数据库的区域设置数据和本地化函数,这些函数帮助开发者在处理多语言环境时,确保数据的正确显示和处理。虽然文件名中的"11.2.0.4"表示的是Oracle 11g的版本,但由于Oracle的本地化支持...

    oracle-sort-order-by.rar_oracle_sort - order

    Oracle数据库支持多种排序规则,包括ASCII、Unicode以及特定的语言排序规则。对于日文字符,Oracle使用的是JIS(日本工业标准)或Unicode的排序规则。这些规则主要涉及到字符编码、重音、半角/全角字符以及平假名、...

    Oracle 字符集详解

    在处理多语言数据时,Oracle提供了NLSSORT参数来调整排序规则,同时配合使用NLS_LANG环境变量来设定客户端的字符集和排序规则,确保数据的一致性。 总结,Oracle字符集是数据库管理的关键部分,理解和正确配置字符...

    Oracle实用教程(第五版)(Oracle11g版)

    在本教程中,你会学习如何使用SELECT语句进行复杂查询,比如JOIN操作来合并多个表的数据,GROUP BY和HAVING子句进行分组和过滤,以及ORDER BY进行排序。此外,DML语句(INSERT、UPDATE、DELETE)用于管理数据,DDL...

    Oracle Sql基础(beginning oracle sql中文版)

    Oracle SQL是数据库管理员和开发人员用来与Oracle数据库交互的语言,它是SQL标准的扩展,提供了许多特有的功能和优化。本资源“Oracle Sql基础(beginning oracle sql中文版)”旨在为初学者提供一个全面的Oracle ...

    基于oracle9i讲解SQL语言(来自网络)PDF中文教程

    Oracle 9i在SQL的基础上增加了许多高级特性,如PL/SQL(Oracle的存储过程语言)和事务管理等,使得数据库管理更为高效和灵活。 **第1章 关系数据库与SQL语言环境** 在这一章节中,我们将学习关系数据库的基本概念...

    oracle-sql.rar_oracle

    这个文件可能包含指向更多Oracle SQL教程、实战案例或者其他相关工具的链接,为学习者提供了进一步深入学习的途径。 Oracle SQL的特性还包括对复杂数据类型的处理,如LOB(大型对象)类型,支持存储图像、音频或...

    Oracle数据操作和控制语言详解(初学者指南).rar

    `SELECT`语句用于检索数据,可以进行单表查询、多表联接查询、聚合函数(COUNT、SUM、AVG、MAX、MIN)以及排序(ORDER BY)和分组(GROUP BY)。例如: ```sql SELECT 列1, 列2 FROM 表名 WHERE 条件 ORDER BY 列3 ...

    Oracle SQL(SQL for Oracle)

    3. **SELECT查询**:Oracle SQL的查询语法丰富,可以使用WHERE子句进行条件过滤,GROUP BY和HAVING子句进行分组统计,ORDER BY子句进行排序,以及JOIN操作连接多个表。 4. **视图**:视图是虚拟表,基于一个或多个...

    Oracle数据操作和控制语言详解.rar

    Oracle数据操作和控制语言(Data Manipulation Language, DML)是Oracle数据库系统中用于处理数据的核心部分,包括插入、更新、删除以及查询等操作。在深入理解Oracle DML之前,我们首先需要对Oracle数据库有一个...

    oracle ppt

    Oracle支持SQL(结构化查询语言),这是与所有关系型数据库交互的基础。 ### 2. Oracle数据库安装与配置 安装Oracle数据库涉及多个步骤,包括选择合适的版本、安装软件、创建数据库实例和配置网络服务。理解Oracle...

    ORACLE根据某一列的值修改另一列的值

    * Oracle 数据库是 Relations Database Management System(关系数据库管理系统),它支持标准的 SQL 语言和一些 Oracle 专有的语言扩展。 * Oracle 数据库有多种数据类型,如 NUMBER、VARCHAR2、DATE 等。 2. 数据...

    Oracle 教案.rar

    3. **SQL基础**:教授SQL语言的基础知识,如SELECT语句用于查询数据,INSERT用于插入记录,UPDATE用于修改记录,DELETE用于删除记录,以及JOIN操作用于合并多个表的数据。 4. **高级SQL**:深入探讨子查询、联接、...

    Oracle初学者指南

    同时,学会使用WHERE子句进行条件筛选,ORDER BY进行排序,GROUP BY进行分组,以及JOIN操作连接多个表。 在数据库设计中,了解关系模型理论,如实体、属性和关系,是必要的。Oracle支持多种表类型,如普通表、索引...

    Oracle官方文档CHM合集-SQL参考手册 Oracle教程 Oracle开发

    4. **查询操作**:SELECT语句是SQL的核心,可以组合使用WHERE子句进行条件过滤,GROUP BY进行分组,HAVING进行分组后的过滤,ORDER BY进行排序,以及JOIN操作连接多个表进行复杂查询。 5. **子查询与联接**:子查询...

    Oracle数据库经典教程

    高级查询涉及联接(JOIN)、子查询、聚合函数(COUNT、SUM、AVG等)和分组(GROUP BY)、排序(ORDER BY)等,能实现更复杂的多表查询和数据分析。 这个教程对于Oracle数据库初学者来说是非常有价值的,它涵盖了从...

    asp链接oracle数据库实例

    ASP(Active Server Pages)是一种微软开发的服务器端脚本语言,常用于构建动态网页。在ASP中连接Oracle数据库,开发者通常会使用ADO(ActiveX Data Objects),它提供了一种简单的方式来处理数据库操作。本项目中,...

Global site tag (gtag.js) - Google Analytics