[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 メーリングリストの案内