【发布时间】:2012-08-02 21:34:27
【问题描述】:
我有一个包含两列的表:
ID 描述
1 第一行
2 第二行
3 _
4 1 个第一个数字行
我有一个问题
SELECT * FROM TABLE ORDER BY DESCRIPTION
问题是我根据运行代码的机器检索不同的结果。 如果我在
上运行代码linux (centos) 我得到以下结果
ID DESCRIPTION
4 1 个第一个数字行
3 _
1 第一行
2 第二行windows (7) 我得到以下结果
ID DESCRIPTION
3 _
1 第一行
2 第二行
4 第一个数字行MAC OS(Snow Leopard) 我得到以下结果
ID DESCRIPTION
3 _
1 第一行
2 第二行
4 第一个数字行
如您所见,下划线“_”的处理方式因我运行查询的机器而异:(。
这是司机的问题吗?为什么我没有得到相同的结果?
【问题讨论】:
-
可能是客户端环境问题在会话中设置了不同的 NLS_LANG 或 NLS_SORT?如果您可以在两个环境中从 sqlplus 运行查询,看看结果是否相同,如果是,那么在查询之前在两个环境中使用相同的“alter session set nls_lang ...”再次尝试。
-
我假设数据库是集中式的,所有客户端都在调用同一个数据库?
-
请参阅the documentation 了解有关 Glenn 评论的更多信息。您的 Java 语言环境会影响此设置;例如看到这个question。
标签: java oracle jdbc collation