gpt4 book ai didi

java - 通过 DB2 Express-C 执行 PreparedStatement 时出错

转载 作者:搜寻专家 更新时间:2023-11-01 02:54:08 24 4
gpt4 key购买 nike

当通过 Statement 对象执行查询时,工作正常但通过 PreparedStatement 对象执行相同的查询会抛出 SQL 异常。

这个查询工作正常...

 String query = "SELECT A, B, C, D, LOBJ FROM TABLE WHERE LOBJ = 'sGMMEMDEML2';

Statement stmt = con.createStatement()

ResultSet rs = stmt.executeQuery(query);

此查询抛出 sql 异常(DB2 SQL 错误:SQLCODE=-302、SQLSTATE=22001、SQLERRMC=null)...

String query = "SELECT A, B, C, D, LOBJ FROM TABLE WHERE LOBJ = ?;

PreparedStatement preStmt = con.prepareStatement(query);

preStmt.setString(1, 'sGMMEMDEML2');

ResultSet rs = preStmt.executeQuery();

View TABLE 中的 LOBJ 列长度为 10 个字符,但由于应用程序中的某些限制,其在 where 子句中的指定值可能为 10 个字符长,也可能不是 10 个字符长。

任何人都可以帮助我,如何使用 PreparedStatement 执行此操作。

提前致谢。

最佳答案

您可能想要打开 DB2 与 Oracle 或 MySQL 的兼容性(在 DB2 命令行中运行这些命令):

db2set DB2_COMPATIBILITY_VECTOR=ORA # or MYS
db2stop
db2start

但是请注意,这只会影响新创建的数据库(至少有一些 DB2_COMPATIBILITY_VECTOR 影响)。咨询DB2 documentation有关详细信息(但是请注意,MYS 的内容没有很好地记录,但至少在 C-Express 9.7.4 release notes 中提到过。

关于java - 通过 DB2 Express-C 执行 PreparedStatement 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com