ORACLE中文字段排序

简介: 做一个2个数据库间数据比较工具时遇到ORACLE中汉字排序的问题。 使用一下SQL select * from T_0303003 order by stock_holder 进行选取数据时(stock_holder为存放中文的字段),结果发现两库返回的记录顺序不一致。
+关注继续查看

做一个2个数据库间数据比较工具时遇到ORACLE中汉字排序的问题。
使用一下SQL

select * 
from T_0303003 
order by stock_holder

进行选取数据时(stock_holder为存放中文的字段),结果发现两库返回的记录顺序不一致。琢磨之后应该为字符集问题,一个库字符集为系统默认字符集,另一个库为UTF-8字符集。查找资料后发现,对于中文字段的排序,应该使用以下方式:

-- 按拼音排序 (系统默认)
select * 
from T_0303003 
order by nlssort(stock_holder,'NLS_SORT=SCHINESE_PINYIN_M');

-- 按部首排序 
select * 
from T_0303003 
order by nlssort(stock_holder,'NLS_SORT=SCHINESE_RADICAL_M');

-- 按笔画排序 
select * 
from T_0303003 
order by nlssort(stock_holder,'NLS_SORT=SCHINESE_STROKE_M');

ORACL官方论坛讨论:
http://www.oracle-database.cn/oracle_database_It-english-database-0-251288.html
Have found a strange question recently, arrange in an order Chinese character order by in oracle, " crocodile's word has been ranked at the end to appear! Whether there is such a situation to know the greater part. Whether it is bug i

-----------------------------------------------------------
NLS _ SORT? ??
answer2:
1 perhaps this word is many sound words. 2 says and says according to what way you want to arrange in an order.
ans wer3:

-----------------------------------------------------------
arranges in an order according to the spelling, should need to set up NLS _ SORT. Have Still in test test finish tell and then you body.
answer4:

-----------------------------------------------------------
O In RACLE, arrange in an order question 1. //Arrange in an order 2 according to the stroke. select * from dept order by nlssort(name,NLS _ SORT =SCHINESE _ STROKE _ M); 3.//Press Take the radical and arrange in an order 4. select * from dept order by nlssort(name,NLS _ SORT =SCHINESE _ RADICAL _ M); 5.//Arrange in an order according to the spelling, this arranges in an order the side for systematic acquiescenc Formula 6. select * from dept order by nlssort(name,NLS _ SORT =SCHINESE _ PINYIN _ M); Can revise NLS _ SORT parameter
目录
相关文章
|
1月前
|
Oracle 关系型数据库
ORACLE中null的排序问题
ORACLE中null的排序问题
|
3月前
|
SQL Oracle 关系型数据库
oracle数据库中对汉字跟英文字母混合排序
oracle数据库中对汉字跟英文字母混合排序
40 0
|
7月前
|
Oracle 关系型数据库 数据库管理
Oracle查询优化-02给查询结果排序
Oracle查询优化-02给查询结果排序
70 0
|
7月前
|
SQL Oracle 关系型数据库
Oracle-分析函数之排序后顺序号row_number()
Oracle-分析函数之排序后顺序号row_number()
44 0
|
7月前
|
SQL Oracle 关系型数据库
Oracle-分析函数之排序值rank()和dense_rank()
Oracle-分析函数之排序值rank()和dense_rank()
84 0
|
11月前
|
SQL Oracle 关系型数据库
Oracle简单查询、条件查询、枚举查询、模糊查询、排序查询、函数查询等
Oracle简单查询、条件查询、枚举查询、模糊查询、排序查询、函数查询等
191 0
Oracle简单查询、条件查询、枚举查询、模糊查询、排序查询、函数查询等
|
Oracle 关系型数据库
oracle学习88-oracle之基本的过滤和排序数据
oracle学习88-oracle之基本的过滤和排序数据
78 0
oracle学习88-oracle之基本的过滤和排序数据
|
Oracle 关系型数据库
oracle学习87-oracle之基本的过滤和排序数据之课后练习
oracle学习87-oracle之基本的过滤和排序数据之课后练习
45 0
|
Oracle 关系型数据库 BI
ORACLE ORDER BY的多种排序
ORACLE ORDER BY的多种排序
ORACLE ORDER BY的多种排序
推荐文章
更多