【发布时间】:2013-04-05 14:12:14
【问题描述】:
我之前问过以下问题: DB2 query Unknown column name 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。错误代码=-4460,SQLSTATE=null 在 com.ibm.db2.jcc.a.dd.a(dd.java:660) 在 com.ibm.db2.jcc.a.dd.a(dd.java:60) 在 com.ibm.db2.jcc.a.dd.a(dd.java:103) 在 com.ibm.db2.jcc.a.ib.a(ib.java:1674) 在 com.ibm.db2.jcc.a.yl.a(yl.java:1625) 在 com.ibm.db2.jcc.a.yl.getString(yl.java:1468) 在 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.custom.CustomLoader$ResultRowProcessor.buildResultRow(CustomLoader.java:447) 在 org.hibernate.loader.custom.CustomLoader.getResultColumnOrRow(CustomLoader.java:344) 在 org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:647) 在 org.hibernate.loader.Loader.doQuery(Loader.java:745) 在 org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270) 在 org.hibernate.loader.Loader.doList(Loader.java:2294) ... 64 更多
【问题讨论】:
-
如果您解决了旧问题,请发布答案,以防其他人遇到类似问题。
-
我的猜测是您使用
columnName而不是columnLabel从结果集中检索值。 -
@WarrenT - 不,这是更多细节/重新询问该问题。马克的回答看起来很有希望。我要试试。