以前に次の質問をしました: DB2 クエリ 不明な列名 ERRORCODE=-4460、SQLSTATE=null
その後、db2jcc4.jar (JCC) から db2jcc.jar (UNIVERSAL) に変更すると、開発環境の問題が解決することがわかりました。問題は、動作しない方が新しいということです。本当に正当な理由がない限り、ドライバーを後退させたくありません。しかし、上記のリンクのクエリが新しいドライバーで無効である理由は私には理解できません。
その列であることはわかっています...空のスペースを強制して結果から除外すると、すべてが機能します(データが取得されない場合を除く)。クエリは、他の環境では正常に機能します。
このエラーは、結果セットのメタデータの getColumn() メソッドが JDBC3 と JDBC4 の間で一貫していないことに関連していることを示唆する投稿を見てきました。しかし、このクエリでは、他の多くのクエリで行われていないような特別なことは行っていません (少なくとも、私たちが知る限りでは)。
このクエリの何が原因であるかを知っている人はいますか? この動作の修正はありますか...設定または回避策、または新しいドライバーのいずれかですか?
完全な例外:
com.ibm.db2.jcc.a.SqlException: [jcc][10150][10300][4.3.111] 無効なパラメーター: 不明 >列名 FILTER_VALUE_DECODE。ERRORCODE=-4460、com.ibm.db2.jcc.a.dd.a(dd.java:660) で com.ibm.db2.jcc.a.dd.a(dd.java:60) で SQLSTATE=null com.ibm.db2.jcc.a.dd.a(dd.java:103) com.ibm.db2.jcc.a.ib.a(ib.java:1674) com.ibm.db2.jcc com.ibm.db2.jcc.a.yl.getString(yl.java:1468) の .a.yl.a(yl.java:1625) com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.getString(WSJdbcResultSet) の.java:2467) で org.hibernate.type.StringType.get(StringType.java:41) で org.hibernate.type.NullableType.nullSafeGet(NullableType.java:184) で org.hibernate.type.NullableType.nullSafeGet( NullableType.java:210) の org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.extract(CustomLoader.java:501) の org.hibernate.loader で。