[pgpool-general-jp: 298] Re: pgpool-II パラレルモード select と order by でエラー

asano asano @ engm.com
2007年 11月 27日 (火) 18:55:12 JST


盛 様 

早速のご回答、ありがとうございます。
ご指摘の通り、データベースの文字コードが異なっておりました。

「pgpoolシステムDB」 SQL_ASQII
「PostgreSQL DB」    EUC_JP

両方ともEUC_JPにそろえた所、エラーが消えました。
ありがとうございました。


----- Original Message ----- 
From: "Yoshiharu Mori" <y-mori @ sraoss.co.jp>
To: <pgpool-general-jp @ sraoss.jp>
Cc: "asano" <asano @ engm.com>
Sent: Monday, November 26, 2007 8:44 PM
Subject: Re: [pgpool-general-jp: 294] pgpool-II パラレルモード select と
order by でエラー


> 浅野様
>
> お世話になっております。
> 盛です。
>
>> pgpool-II パラレルクエリモード使用で select文 を order by句 と組み合わせて
>>
>>
>> 発行すると、エラーが発生します。
>>
>> テーブルに設定した文字数の範囲内の文字列が入っているにも関わらず、
>> 文字列がオーバーしているかのようなエラーが表示されます。
>> (例:character varying(100)なら80文字の文字列)
>>
>> どなたか対処法をご存知の方が見えましたら、
>> お教え願いたいと思います。
>
> 恐らく、systemDBとデータが入っているDBのencodingが異なるのでは
> ないでしょうか。
>
> 例えばsystemDBがEUC_JPで作成されており、データが入っているDBがUTF-8の
> 場合など。
>
>>
>>
>> [エラーの状況]
>>     ・発行するSQL
>>      select * from shop_data where shop_area_number='1' order by
>> r_datetime
>> desc limit 5 offset 0;
>>
>>     ・発生したエラー
>>      Query failed: ERROR: value too long for type character varying(100)
>>
>>     ・一見すると単に文字数がオーバーしているだけだと思われたが、
>>      フィールドに入っている文字は80文字ほど(日本語)で、オーバーはしていない。
>>
>>
>>
>>     ・あるフィールド(shop_caption1 ※下記参照)に最も多く文字列が入っていたので、
>>      文字数を60文字くらいに減らしたらエラーは出なくなった。
>>
>>     ・別のフィールド([shop_estimate] character varying(50) )には35文字程度いたが、これもエラーの原因となっていた。
>>      文字数を60文字くらいに減らしたらエラーは出なくなった。
>>
>>     ・試しに order by句をはずして 「select * from shop_data」 だけを発行すると、このエラーは出なくなった。
>>
>>     ・またPostgreSQL単体で動かしてみたところ、エラーは出なくなった。
>>
>>
>> ------------------
>> 浅野
>>
>> asano @ engm.com
>>
>>
>> _______________________________________________
>> pgpool-general-jp mailing list
>> pgpool-general-jp @ sraoss.jp
>> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
>>
>
>
> -- 
> SRA OSS, Inc. 日本支社
> Yoshiharu Mori <y-mori @ sraoss.co.jp>
> http://www.sraoss.co.jp/




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