一般动作
登录
Wiki: BROPEN ▼: Document Index
»
Space: FAQ ▼: Document Index
»
Page: 我们的Oracle数据库的默认字符集是UTF-8，如何按中文排序呢
搜索
zh
页面动作
导出 ▼: 以PDF格式导出 以RTF格式导出 以HTML格式导出
更多动作 ▼: 打印预览 察看源码
欢迎进入Wiki » FAQ » 我们的Oracle数据库的默认字符集是UTF-8，如何按中文排序呢?

# 我们的Oracle数据库的默认字符集是UTF-8，如何按中文排序呢?

在2013-12-23 18:07上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

Oracle数据库字符集为UTF-8时，默认的order by查出来的数据顺序不是按中文拼音来的，具体原因可以Google一下“oracle 字符集 排序”。

按照网络上的各种解决方案，如果需要按照中文排序，无非就是设置 NLS_SORT 参数，不论是session级别的、还是sql语句级别的、或者操作系统级别的。

Grails中的默认ORM框架是hibernate，因此可以进一步Google在Hibernate中的解决方案，以及Grails + Hibernate的解决方案，比如这篇帖子。

在Grails工程中安装了BroToolkit插件后，只需要在 DataSource 中配置一个定制的 HibernateConfiguration，就可以实现中文排序。

hibernate {
properties {
oracle.nls_sort = "SCHINESE_PINYIN_M" // 按中文拼音排序
}
}
dataSource {
configClass = bropen.toolkit.orm.HibernateConfiguration
......
}

该配置同样可以支持通过外部properties文件加载，并可以支持多数据源，详细可参考安装后的 DataSource.groovy 和 DataSource.properties 模板文件。

此外，这个Hibernate配置类还可以支持设置Oracle数据库表空间、设置数据库连接池自增等。

标签： grails dataSource oracle 中文 BroToolkit
在2013-10-31 10:59上被李小翔创建

- 评论 （0）
- 附件 （0）
- 记录
- 信息

# 快速链接

- 首页
- 新闻动态
- FAQ

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号