【发布时间】:2015-11-26 07:32:58
【问题描述】:
我们有一个 db2 数据库 v 9.7 FP 1
我们有一个类似这样的表格:
CREATE TABLE TAB1(COL1 VARCHAR(30),...);
我们的应用程序从前端获取 col1 值并在 Java 7 中形成 PreparedStatement,如下所示:SELECT FROM TAB1 WHERE COL1 = '?'。如果来自 UI 的输入超过 30 个字符,则在执行准备好的语句时,我们会收到 DB2 错误
Error Code: -302
但同样的语句,即 SELECT * FROM TAB1 WHERE COL1 = 'XXXXX'; (COL1 长度 > 30 个字符),如果直接从 cmd 对数据库执行,我们不会遇到任何错误。
此错误消息的可能原因是什么?
【问题讨论】:
-
没有代码的问题会引起模糊的答案。
-
我假设
VARCAHR的意思是VARCHAR。 -
我很惊讶“直接执行”不会出错。
-
1.是的,直接执行不会抛出任何错误。 2.是的,它是VARCHAR
标签: java db2 prepared-statement