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 = ? ;”
これで動くようになりましたので、ご参考までに!