Oracle下划线:Linux上的JDBC查询结果顺序与MAC-OS或Windows上的结果不同

问题描述 投票:1回答:2

我有一个带有两列的表:

ID << [DESCRIPTION1第一行2第二行3 _4 1个第一数字行

并且我有一个查询

SELECT * FROM TABLE ORDER BY DESCRIPTION

问题是,我根据运行代码的机器检索到不同的结果。如果我在上运行代码

  • linux(centos)我得到以下结果

    ID << [DESCRIPTION4 1个第一数字行3 _1第一行2第二行

  • windows(7)我得到以下结果
  • ID
  • << [DESCRIPTION
    3 _1第一行2第二行4 1个第一数字行

    MAC OS(Snow Leopard)我得到以下结果ID << [DESCRIPTION3 _1第一行2第二行4 1个第一数字行

  • 所以您可以看到下划线“ _”的不同,这取决于我运行查询:(。的机器。这是驾驶员的问题吗?为什么我没有得到相同的结果?
  • java oracle jdbc collation
    2个回答
    1
    投票

    在Linux上>LANG=en_US.UTF-8

      LC_CTYPE="en_US.UTF-8"
    • 在Mac上为>

      LANG=de_DE.UTF-8

    • LC_CTYPE="de_DE.UTF-8"

    • 在德国utf-8的linux机器上设置

      locale

    • 后,我在linux上的结果与另一台机器(mac和Windows)上的结果相同,现在构建又恢复了稳定:)。

    我将尝试使用NLS_LANG的配置,以便能够将linux计算机的

    locale设置回英语utf-8。

    顺序取决于您的NLS设置。See the NLS_LANG and NLS_SORT setting。如果在所有环境上都提供相同的NLS设置,则顺序将相同。


    1
    投票
    我希望排序的性能在这里并不重要,因为如果索引已建立,则查询可能不使用描述列的索引。
    © www.soinside.com 2019 - 2024. All rights reserved.