[pgsql-jp: 29940] Re: 特定の日本語を含むとエラー
Ogino
ogino @ sic.co.jp
2003年 5月 17日 (土) 13:06:23 JST
荻野です。自己レスです。
> 以下のようなテーブルに、JDBC経由でアクセスすると
> エラーを吐いて落ちてしまいます。
>
> [テーブル:キーワード]
> create table keyword(
> key_id integer,
> keyword varchar(100),
> kana varchar(100)
> );
>
> insert into keyword values(
> 1,'睡眠時無呼吸症','すいみんじむこきゅうしょう');
>
> select * from keyword
> where keyword = '睡眠時無呼吸症' ;
>
理由は良く分かりませんが、「睡眠時無呼吸症」
という日本語をEUCに変換したところ、
うまくいくようになりました。
しかし、DBはNUICODEで作ってあるので、
なぜこれでうまくいくのかかなり疑問です。
(PGCLIENTENCODINGもUNICODEです)
その後、新たな問題が起こりました。
同様に、'睡眠時無呼吸症' という単語を
キーにして、以下のような正規表現で検索をしていた
のですが、やはり「呼」の字があると
同様のエラーを吐いて落ちてしまいました。
(PSQLからでも落ちます)
select * from hoge where name ~ '睡眠時無呼吸症'
こちらについては、LIKEにすることで
回避することができるのでいいのですが、
日本語を使った正規表現は、まだまだなのかな?
と思いました。
以上です。
お騒がせしてすみませんでした。
pgsql-jp メーリングリストの案内