oracle的中文排序问题

mysql中文排序有convert(name using gbk)这样的函数,于是研究了一下oracle中文排序:

使用拼音排序

SQL> select * from chineseordertest order by nlssort(name,‘NLS_SORT=SCHINESE_PINYIN_M‘);

NAME
----------------------------------------
A语言
汉文
日文
中文

使用笔画排序

SQL> select * from chineseordertest order by nlssort(name,‘NLS_SORT=SCHINESE_STROKE_M‘);

NAME
----------------------------------------
A语言
中文
日文
汉文

使用偏旁部首排序

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

NAME
----------------------------------------
A语言
中文
日文
汉文

    第一种用的最多,后两种搞不清排序的规则是什么.7  

原文地址:https://www.cnblogs.com/qlqwjy/p/9354018.html

时间: 2024-11-10 13:31:34

oracle的中文排序问题的相关文章

【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇四:关于OneNote入库处理以及审核

篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblogs.com/baiboy/p/wpf1.html 篇三:批量处理后的txt文件入库处理:http://www.cnblogs.com/baiboy/p/wpf2.html 篇四:关于OneNote入库处理以及审核:http://www.cnblogs.com/baiboy/p/wpf3.html [

Oracle一个中文汉字占用几个字节

Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定   查看oracle server端字符集 select userenv('language') from dual; 如果显示如下,一个汉字占用两个字节 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 如果显示如下,一个汉字占用三个字节 SIMPLIFIED CHINESE_CHINA.AL32UTF8 可以用以下语句查询一个汉字占用的字节长度 select lengthb('你') from d

oracle数据库中文汉字排序

oracle数据库中文汉字排序 今天需要按oracle数据库中某个表的某个中文字段进行排序,本来感觉挺简单的一个东西,不就是一个order by嘛,可是写完了发现拍的并不对,一时间感到不可思议,又查询,发现果然有这个问题,经过查资料发现,Oracle对中文的排序是按照ASC码的值进行排序的,后来又经过查阅资料发现了一个他的函数 1.按照拼音排序: select * from your_table_name t order by nlssort(t.ordered_column_name,'NLS

【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblogs.com/baiboy/p/wpf1.html 篇三:批量处理后的txt文件入库处理:http://www.cnblogs.com/baiboy/p/wpf2.html 篇四:关于OneNote入库处理以及审核:http://www.cnblogs.com/baiboy/p/wpf3.html [

Oracle中中文、数字,英文混杂形式的字段进行排序的方法

http://blog.csdn.net/p451933505/article/details/9272257 对Oracle中中文.数字.英文混杂形式的字段进行排序的方法: 例如: order by NLSSORT(字段名,'NLS_SORT = SCHINESE_PINYIN_M'), to_number(translate(字段名, '0123456789' || 字段名, '0123456789')) NLSSORT() 函数: 可以使用NLSSORT()函数可以改变Oralce 对汉字

Oracle导入中文乱码解决办法

Oracle导入中文乱码解决办法 一.确保各个客户端字符集的编码同服务器字符集编码一致 1-       确定sqlplus字符集编码,如果是windows设置环境变量. 2-       确保SecureCRT客户端的字符集为简体中文即可,不要设置为UTF-8,否则在连接oralce数据库时,中文都显示乱码,以免产生不必要的麻烦. 二.设置带中文的sql脚本的字符集

oracle 判断中文函数

create or replace function func_chinese(  p_str     in varchar2,     -- 输入的字符串  p_code    in varchar2,     -- dump(字符串)  p_chinese in pls_integer   -- 1, 提取汉字, 非1, 提取非汉字) return varchar2as  v_code         varchar2(32767) := substr(p_code,instr(p_code

[oracle]解决centos 7下oracle的中文乱码问题

首先在形成中文乱码的原因是由于字符集不统一导致的,不同的字符集在转换的过程中必然要出现乱码,当然不排除可以转换.所以要解决中文乱码问题,思路是将输入.存储.显示等流程中涉及到字符集都统一为一种,对于oracle首先必须满足的先决条件是要服务端和客户段的字符集统一,若还不能解决问题,同时还要将系统的字符集与之统一,甚至导入或输入数据所使用的字符集统一. 看了网上的一些资料后,都说修改服务器的字符集风险比较大,确实,测试开发用还好说,假若是上线项目的服务器,那修改服务器字符集所带来的后果是不堪的,废

Oracle数据库中文乱码问题

最近碰到Oracle乱码问题,刚开始甚是头疼,以前在合肥出差的时候,这种问题也碰到过,当时直接抛给了“乌压压一片”(一个搞数据的同事儿),这次没办法躲过,只好硬着头皮上.虽然我这次碰到的是Oracle乱码问题中的一个,但是我决定将这个乱码问题整理清楚(不整清楚,就觉得身边有个定时炸弹,怕下次整数据库的时候会突然又爆炸). 解决这个问题的关键在于理解字符集的概念,所以在正文开始之前,有必要先提一下字符集的相关知识!(这部分知识,对于解决j2ee中文参数传递过程中出现的乱码,也非常具有参考意义) 一