[pgsql-jp: 36542] Re: =で文字の検索ができない(LikeではOK)

原中 mitsukatsu-haranaka @ greensys.co.jp
2005年 12月 13日 (火) 18:06:36 JST


原中です。

> まず質問なのですが、別のマシンに作成したのはどちらですか?
> ・DBサーバー
> ・接続クライアント
> 
> 前者であれば、DB自体が別物だと思うので、「不思議」ではないような気がしま
> す。
> 後者だとすると、クライアントの環境が同じなら解決が難しいかもしれません。
> 
> 恐らく、前者だと思うので次の方法が可能なら確認してみませんか?
> 
> COLUMNのみのUNIQUE INDEXを作成する。
> COLUMNの値が'補佐'のデーターをINSERTしてみる。
> 
> INSERTが成功したら・・・理由はわかりますよね?
> INSERTが失敗するようなら難しい状況かもしれません

おっしゃるとおりです。確かにINSERTに成功してしまいました。
ロケールを確認するとJapaneseになっていました。
他のマシンではC(Common)に設定されていました。

WindowsXPにインストールするときに設定画面で
ロケールをJapanese、encodingをUNICODE(UTF-8)としたことが原因でした。
initdbで再度クラスタをロケールC、encodingをUNICODEで構築すると
正常に検索できるようになりました。

感謝感謝です。





pgsql-jp メーリングリストの案内