このことは、昨日から何の理由もなく私を愚かにしています(同じ問題を抱えている他の開発者を見つけることなく、たくさんグーグルで検索しました)。postgresql 7 を使用する Java (jdk5) で記述されたアプリケーション サーバーを、postgresql 9 を使用する jdk7 にアップグレードしています。
シンプルでばかげた問題:
同じステートメント内の INSERT と SELECT:
insert into table(a,b) values('a','b') ; select currval('table_pkey_id')
特別なことは何もなく、シンプルで明確に見えます..しかし、postgresql-9.3-1100.jdbc3.jarではそれ以上機能せず、件名にエラーがスローされます。
SQL ステートメントは pgadmin を使用して通常どおり機能し、挿入された行の ID を返します。しかし、pg9/java7 で javam を使用して同じクエリを作成すると、単純な挿入ステートメントで executeQuery を使用した場合のようにエラーがスローされます。
stmt=cnn.createStatement(rst.TYPE_SCROLL_INSENSITIVE,rst.CONCUR_READ_ONLY);
stmt.executeQuery(sql);
org.postgresql.util.PSQLException: クエリによって結果が返されませんでした。"
なぜ神?!上記の2つのSQLステートメントを壊さずに、この問題を修正する必要があります。executeQuery 実装の本当にばかげたバグのようです。
フィードバックしてください。ありがとう。
最大