CSEでPostgreSQLエラー「PQsendQuery() -- query is too long. Maximum length is 16382」が発生→Linuxコンソールだと問題なし。

CSEで

update テーブル名 set カラム名1 = '猫大好き!猫大好き!猫大好き!猫大好き!' where neko_id = 100;

のようなSQLを書いて実行すると、通常だと、neko_idが100のレコードの「カラム名1 」に「猫大好き!猫大好き!猫大好き!猫大好き!」という値が入る。

しかし、今日、とても長い文字列(「猫大好き!」の何千倍なのかな?)をカラム名1にセットして更新(UPDATE)しようとすると、以下のエラーが発生した。

SQL実行中に以下のエラーが発生しました。
PQsendQuery() -- query is too long. Maximum length is 16382

r_nobuが適当に訳すと「(SQLの)クエリーがあまりにも長すぎます。長さの最大値は、16382です」ってことみたいだけど、そんなことを言われてもなぁ。「16382」の単位は何だろう?ちなみに、カラム名1は、テキスト型なので、数万文字程度の文字列など楽勝で入るはず。

原因追求が面倒になってきたので、とりあえず、CSEでのUPDATEをやめて、LinuxのコンソールでPostgreSQLデータベースに接続して同じSQLを実行したら問題なくUPDATEできた。ということは、上記のエラーは、CSEの何らかの仕様で引っかかっているのかなぁ。

今度、万一時間があれば、調べるかもしれないが、たぶん、今後も、同じエラーが出たらLinuxコンソールを叩いて「これで問題ないからイイヤ!」と逃げることだろう(笑)。

  
 

前へ

もうすぐ明神山トンネルの入口 (愛媛県伊予市付近 松山自動車道)

次へ

久しぶりの雷鳴、大雨