1

2 つの列を持つ TABLE があります。

ID     説明
1 行
目 2 行目
3 _
4 1 行目の数値

そして、私は質問があります

SELECT * FROM TABLE ORDER BY DESCRIPTION

問題は、コードを実行するマシンに応じて異なる結果を取得することです。コードを実行すると

  • linux (centos) 次の結果が得られます
    ID      説明
    4 1 最初の数値行
    3 _
    1 最初の行
    2 2 番目の行

  • windows (7) 次の結果が得られます
    ID      説明
    3 _
    1 番目の行
    2 2 番目の行
    4 1 番目の数値行

  • MAC OS(Snow Leopard) 次の結果が得られ
    ます ID      説明
    3 _
    1 行
    目 2 2 行目
    4 1 行目の数値行

ご覧のとおり、アンダースコア「_」は、クエリを実行するマシンによって異なる扱いになります:(。
これはドライバーの問題ですか?なぜ同じ結果が得られないのですか?

4

2 に答える 2

1

ヒントは10倍。実際、問題はlocaleの設定にありました。

  • Linux で

    LANG=en_US.UTF-8

    LC_CTYPE="en_US.UTF-8"

  • マックで

    LANG=de_DE.UTF-8

    LC_CTYPE="de_DE.UTF-8"

ドイツのutf-8でLinuxマシンにロケールを設定した後、Linuxでも他のマシン(MacとWindows)と同じ結果になり、ビルドは安定に戻りました:)。

Linux マシンのロケールを英語の utf-8 に戻せるように、NLS_LANG の設定をいじってみます。

于 2012-08-03T08:09:59.267 に答える