在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择:
按中文拼音进行排序:SCHINESE_PINYIN_M
按中文部首进行排序:SCHINESE_RADICAL_M
按中文笔画进行排序:SCHINESE_STROKE_M
而oracle 9i是对中文的排序是默认按拼音排序(并不是指NLS_SORT = SCHINESE_PINYIN_M,而是说SQL中不指定NLS_SORT时对中文列排序时默认按拼音)的,跟之前的2进制编码排序有所不同.具体用法如下:
直接写在sql中,例如:
SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_PINYIN_M');
SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_STROKE_M');
SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_RADICAL_M');
配置在初始化参数NLS_SORT中,这可以在数据库创建时指定,也可以通过alter session来修改.如果是前者,则在所有session中生效.例如:
使用select * from NLS_SESSION_PARAMETERS;语句可以看到NLS_SORT的值.
更改配置文件:alter system set nls_sort='SCHINESE_PINYIN_M' scope=spfile;
更改session:alter SESSION set NLS_SORT = SCHINESE_PINYIN_M;
这里要额外注意一下性能问题,按oracle官方文档的解释,oracle在对中文列建立索引时,是按照2进制编码进行排序的,所以如果NLS_SORT被设置为BINARY时,排序则可以利用索引.如果不是2进制排序,而是使用上面介绍的3种针对中文的特殊排序,则oracle无法使用索引,会进行全表扫描.这点一定要注意,多用plsql工具比较一下执行效率.解决方法是,在此列上建立linguistic index.例如:CREATE INDEX nls_index ON my_table (NLSSORT(name, 'NLS_SORT = SCHINESE_PINYIN_M'));
http://www.cnblogs.com/discuss/articles/1866953.html
分享到:
相关推荐
本资源“Oracle Sql基础(beginning oracle sql中文版)”旨在为初学者提供一个全面的Oracle SQL学习指南。让我们深入探讨Oracle SQL的基础知识。 一、SQL简介 SQL(结构化查询语言)是用于管理关系数据库的标准...
Oracle SQL 是一种强大的数据库查询和编程语言,广泛用于管理和操作Oracle数据库系统。11g第二版(11G2)是Oracle的一个重要版本,提供了许多增强功能和优化。本官方文档集包括四份重要的参考资料,涵盖了Oracle SQL...
第三章 ORACLE SQL 单行函数 第四章 从多表中查询数据 第五章 用组函数合计数据 第六章 子查询 第七章 操纵数据 第八章 创建和管理表 第九章 内置约束 第十章 创建视图 第十一章 其他数据库对象 第十二章 控制用户...
Oracle SQL Developer是Oracle生态系统中不可或缺的一部分,尤其对于那些需要频繁与Oracle数据库交互的开发者和DBA来说,它提供了一站式的解决方案,提高了工作效率并简化了数据库管理工作。无论你是初学者还是经验...
Oracle SQL 内置函数大全 SQL中的单记录函数 给出整数,返回对应的字符 连接两个字符串 增加或减去月份 用于对查询到的结果进行排序输出
《Pro Oracle SQL》是Oracle SQL领域的一本权威指南,尤其针对11gR2版本进行了深入探讨。本书全面覆盖了Oracle SQL的各种概念、语法和高级特性,旨在帮助读者从初级到高级逐步提升对Oracle数据库查询语言的理解和...
在Oracle SQL中,我们还可以使用DML(数据操纵语言)进行更复杂的操作。 二、SELECT语句 SELECT语句是SQL中最常用的,用于从表中检索数据。其基本语法是: ```sql SELECT column1, column2, ... FROM table_name; `...
通过这些练习,你可以逐步掌握Oracle SQL的基本操作,提高在实际工作中处理数据的能力。同时,附带的答案将帮助你检查自己的理解和解答是否正确,进一步巩固学习成果。不断实践和理解,是成为Oracle SQL高手的关键...
2. **子查询**:Oracle SQL支持子查询,这允许在单个查询中嵌套另一个查询,用于检索满足特定条件的数据。例如,你可以用子查询找出某个部门薪水最高的员工。 3. **连接(JOIN)操作**:在处理多个表的数据时,JOIN...
1. **SQL执行计划**:SQL执行计划是Oracle解析器为每个SQL语句制定的执行策略,包括表的扫描方式(全表扫描或索引扫描)、连接顺序、排序操作等。理解执行计划有助于找出性能瓶颈并进行优化。 2. **绑定变量**:...
Oracle SQL,全称为结构化查询语言在Oracle数据库环境中的应用,是数据库管理员和开发人员用于检索、更新和管理Oracle数据库的核心工具。Oracle SQL是SQL标准的扩展,它提供了许多特有的功能,以满足企业级数据库...
### Oracle SQL*Plus 口袋参考手册第二版关键知识点概览 #### 1.1 引言 本书《Oracle SQL*Plus Pocket Reference, 2nd Edition》是一部针对Oracle SQL*Plus及其常用SQL查询和数据操作语句的快速参考指南。作者...
Oracle SQL大全,正如标题所言,是一套涵盖了Oracle数据库系统中SQL语言的综合学习资源。这套资料主要由三个文档组成,分别是"Oracle8i_9i数据库基础.pdf"、"oracle1.pdf"和"SQL基础.pdf",它们分别从不同角度深入浅...
Oracle SQL 性能优化是数据库管理中非常重要的一环。通过对 SQL 语句执行的过程、Oracle 优化器、表之间的关联、如何得到 SQL 执行计划、如何分析执行计划等内容的讨论,可以逐步掌握 SQL 优化的过程。 在 SQL ...
SQL 执行计划是 Oracle 数据库执行 SQL 语句的计划,它包括索引使用、 Join 顺序、排序顺序等。通过对执行计划的优化,可以提高数据库的响应速度和吞吐量。 8. 索引使用优化 索引使用优化是 Oracle 调优的一个重要...
《Pro Oracle SQL Development》这本书是Oracle SQL开发的专业指南,它深入探讨了Oracle数据库系统中的SQL语言使用和优化。Oracle SQL是用于管理和操作Oracle数据库的强大工具,对于任何在Java开发中涉及Oracle...
Oracle SQL是数据库管理领域中最广泛使用的查询语言之一,尤其在Oracle数据库系统中扮演着核心角色。本教程基于ORACLE的官方SQL教材,旨在提供全面且深入的SQL学习资源,帮助初学者和进阶用户掌握这一强大的数据操作...
总结三种排序方式的共同点和不同点,已经排除空值后排序的oracle语句用法
Oracle SQL是数据库管理领域中的重要组成部分,特别是在Oracle数据库系统中,它是进行数据操作和分析的主要语言。本压缩包“oracle-sql.rar_oracle”显然针对的是Oracle SQL的学习资源,特别是对于初学者而言,它...