一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • PostgreSQL14 ⇒ 15に更新後のSQLエラー

PostgreSQL14を15に更新し、バッチ(java)を実行した結果
「trailing junk after parameter at or near “$1A”」
というエラーが発生しました。

PostgreSQL15のリリースノートを確認すると
一番近しいのは
「数値リテラルの後に続く非数値文字が禁止されました」
とのことで直接関係はないかな。。。

PostgreSQLログを見ると
「SELECT test,test2,test3 FROM テーブル名 WHERE test = $1AAND test2 = $2A ;」
このように「$1A」と「AND」が連結してしまっているのが原因だとわかりました。

java文の修正としては、「test = ?」の「?」の後に半角スペースを入れるだけです
<修正前>
string sql = “SELECT ” + “test, test2, test3 ” + “FROM テーブル名 ” + “WHERE ” + “test = ?” + “AND test2 = ? ;”
<修正後>
string sql = “SELECT ” + “test, test2, test3 ” + “FROM テーブル名 ” + “WHERE ” + “test = ? ” + “AND test2 = ? ;”

これで動くようになりましたので、ご参考までに!

The following two tabs change content below.

佐々木 慎

最新記事 by 佐々木 慎 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア