微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java 准备语句不允许在查询的 where 子句中出现大字符串

如何解决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 举报,一经查实,本站将立刻删除。