[pgsql-jp: 29101] Re: 都道府県データの検索
KITAO Kaoru
kitao @ netcube.jp
2003年 2月 18日 (火) 14:02:50 JST
お世話になります。北尾です。頭が混乱しています。
そして書きかけのメールを送信してしまいました。申し訳ないです。
変なレスになってしまっていたらごめんなさい。
>--enable-multibyteのみではSQL-ASCIIが選択されてしまうのでは無いでしょうか?
>上記の場合、initdbもしくはcreatedbの時にencoding=EUC_JPを指定しなければいけなかったような
確かに仰せのとおり(目からうろこ)。さっそくinitdb時にEUC_JPを指定して再度
データベースの作成、データの復元を試みました。で、いろいろコマンドを投げ
かけてみました。
(1) 先ほどと同じようにselect文を投げても結果は同様29件・・・(なんで〜涙)
(2)「漢字の1バイト目で一致して取ってきちゃっているのかなー」
以下のようにSQLを変更して実行してみたら
psql -d db_monitor -c "select * from tbl_pref where pref_name LIKE '東%';"
あら不思議「東京都」だけが検索されました(当然といえば当然ですが)
(3)じゃぁこれでも大丈夫かな
以下のようにSQLを変更したら
psql -d db_monitor -c "select * from tbl_pref where pref_name LIKE '東京都';"
「東京都」が検索されました。
現状でわかったこと・やってみたこと
■postgresqlのパッケージを、specファイルから自分で作成するのではなく、ネット
からダウンロードした最新のものにしました(7.2.3-5.80)。
|--enable-locale --with-CXX --prefix=/usr --disable-rpath --with-perl --enable-multibyte --with-
|tcl --with-odbc --enable-syslog --with-python --with-openssl --with-pam --with-krb5=/usr/kerber
|os --enable-nls --sysconfdir=/etc/pgsql --mandir=/usr/share/man --docdir=/usr/share/doc --inclu
|dedir=/usr/include --datadir=/usr/share/pgsql
■initdb --encoding=EUC_JPを実行
■データベースを作成して以下を確認
List of databases
Name | Owner | Encoding
------------+----------+----------
db_monitor | postgres | EUC_JP
template0 | postgres | EUC_JP
template1 | postgres | EUC_JP
(3 rows)
■select * from tbl_pref where pref_name='東京都'を実行
29件の結果が検索される(涙)
■select * from tbl_pref where pref_name like '東%'を実行
正しい値が返される
・・・自分の技術力の無さを痛感しています。
文字コードの件と合わせて、時間を見て検討したいと思います。
どうもありがとうございました。
-------------------------------------------
□ KITAO Kaoru (北尾 馨)
□ CubeWorks Inc, Ibaraki Pref.
pgsql-jp メーリングリストの案内