如何解决Java 准备语句不允许在查询的 where 子句中出现大字符串
我正在尝试使用 Java 准备好的语句从 DB2 检索数据
String select_statement = "SELECT * FROM schema_name.table_name where NME='xxx002' and LINE =7200 and FILE_NME='720001042021XYZ002' with ur";
try (Connection connection = DataBaseConnection.getGeoCarDBConnection_TESTDATA();
PreparedStatement ps = connection.prepareStatement(select_statement);) {
ResultSet rs = null;
rs = ps.executeQuery();
}
我面临的问题是我在查询的 where 子句中包含了 FILE_NME
,如上所示,返回了 0 行。但是可以传递任何其他字符串字段,我会得到所需的行数。
where 子句中的任何 integer
字段也有效。
但只有大的 string
字段(在本例中为 FILE_NME
字段)不起作用。在我从中提取数据的 DB2 表中,FILE_NME
字段为 varchar(30)
。
对我不起作用的事情是
String select_statement = "SELECT * FROM schema_name.table_name where NME='xxx002' and LINE =7200 and FILE_NME = ? with ur";
然后我使用,
设置字符串值ps.setString(1,"'720001042021XYZ002'")
ps.setString(1,"720001042021XYZ002")
两者都不起作用。
所有谷歌链接都没有帮助。花了一天多的时间。
这段代码以前可以完美运行,即使是java版本也没有改变(据我所知)
我在 Windows 10 中运行它。
Java 版本:1.8 ((build 1.8.0_221-b11))
请有人帮助我或为我指明正确的方向。我不知道我错过了什么
提前致谢
解决方法
问题是确实没有数据,我在不同环境下的数据库客户端中检查相同的查询。我正在关闭这个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。