【发布时间】:2012-01-11 11:07:34
【问题描述】:
我在这样的 Oracle 数据库中有一个表
ID | LABEL
------------
1 | label alpha 1
2 | label alpha 2
3 | label alpha a
当我在像 Squirrel 这样的应用程序中进行选择时:
select * FROM MA_TABLE order by LABEL asc
我明白了:
ID | LABEL
------------
1 | label alpha 1
2 | label alpha 2
3 | label alpha a
这很好!
但是当我使用 MyBatis 执行相同的请求时:
<select id="selectMaTable" resultMap="resultMap" >
Select * FROM MA_TABLE order by LABEL asc
</select>
我明白了:
ID | LABEL
------------
3 | label alpha a
1 | label alpha 1
2 | label alpha 2
字母字符在数字字符之前...为什么??
提前致谢,
安东尼
Ps : 我正在使用 org.mybatis:mybatis:jar:3.0.5 和 com.oracle:ojdbc6:jar:11.2.0.2.0 进行数据库访问
编辑: this linked help me a bit also
感谢 Soulcheck 的评论,我发现如果我使用 ORDER BY NLSSORT(ATL_SIT.ATL_SIT_LIB, 'NLS_SORT=BINARY') 更改 order by 子句,它可以工作...
有谁知道如何用 myBatis 强制 NLS_SORT=BINARY ? (它已经在我的 Oracle 数据库的 NLS_DATABASE_PARAMETERS 中设置)
【问题讨论】:
标签: java oracle sorting sql-order-by mybatis