检索 CLOB 字段期间的 DB2 查询错误 [英] DB2 query error during the retrieval of a CLOB field

查看:18
本文介绍了检索 CLOB 字段期间的 DB2 查询错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从 Java 我在 DB2 上执行以下查询:

From Java I am doing the following query on DB2:

SELECT * FROM PRV_PRE_ACTIVATION WHERE TRANSACTION_ID = ?

TRANSACTION_ID 字段是一个长度为 32 的 VARCHAR.我在preparedStatement 中使用setString 方法设置了参数.

The field TRANSACTION_ID is a VARCHAR of length 32. I set the parameter in the preparedStatement using the setString method.

我得到错误:

com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-270, SQLSTATE=42997, SQLERRMC=63, DRIVER=3.59.81
    at com.ibm.db2.jcc.am.dd.a(dd.java:676)
    at com.ibm.db2.jcc.am.dd.a(dd.java:60)
    at com.ibm.db2.jcc.am.dd.a(dd.java:127)
    at com.ibm.db2.jcc.am.bn.c(bn.java:2546)
    at com.ibm.db2.jcc.am.bn.d(bn.java:2534)
    at com.ibm.db2.jcc.am.bn.a(bn.java:2026)
    at com.ibm.db2.jcc.t4.cb.g(cb.java:140)
    at com.ibm.db2.jcc.t4.cb.a(cb.java:40)
    at com.ibm.db2.jcc.t4.q.a(q.java:32)
    at com.ibm.db2.jcc.t4.rb.i(rb.java:135)
    at com.ibm.db2.jcc.am.bn.gb(bn.java:1997)
    at com.ibm.db2.jcc.am.cn.pc(cn.java:3009)
    at com.ibm.db2.jcc.am.cn.b(cn.java:3786)
    at com.ibm.db2.jcc.am.cn.bc(cn.java:678)
    at com.ibm.db2.jcc.am.cn.executeQuery(cn.java:652)

其中 sqstate 表示此版本的 DB2 应用程序请求者、DB2 应用程序服务器或两者的组合不支持功能."但我不使用任何奇怪的功能.

Where the sqstate means "Capability is not supported by this version of the DB2 application requester, DB2 application server, or the combination of the two." But I don't use any strange functionality.

我已经尝试使用 squ 客户端进行查询:

I have tried using an squ client the query:

SELECT * FROM PRV_PRE_ACTIVATION where transaction_id='A'

一切顺利.

问题的原因是什么?

更新:准备语句的代码:

UPDATE: The code where the statement is prepared:

s = con.prepareStatement(sSQL,
                 ResultSet.TYPE_SCROLL_INSENSITIVE,
                 ResultSet.CONCUR_UPDATABLE);

推荐答案

尝试在选择列表中更改为指定的列列表——我猜你有一个用户定义的列类型(或其他类型),它不是由您的驱动程序支持.例如,语句是否

Try changing to a specified list of columns in the select list -- my guess is you have a user defined column type (or some other type) which is not supported by your driver. For example, does the statement

SELECT TRANSACTION_ID FROM PRV_PRE_ACTIVATION WHERE TRANSACTION_ID = ?

工作?如果是这样,那么开始添加列,您将找到问题列.

work? If so then start adding columns in and you will find the problem column.

这篇关于检索 CLOB 字段期间的 DB2 查询错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆