Java 预处理语句不允许在查询的 where 子句中使用大字符串

Java prepared statement does not allow large strings in the where clause of the query

我正在尝试使用 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 table 中,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")

两者均无效。

None 中的 google 链接很有帮助。花了一天多的时间。

这段代码以前可以完美运行,即使 java 版本也没有改变(据我所知)

I am running it in windows 10.

Java version : 1.8 ((build 1.8.0_221-b11))

我 运行 在数据库客户端中进行相同的查询并且有效。

有人请帮助我或指出正确的方向。我不知道我错过了什么

提前致谢

问题是确实没有数据,我是在不同环境下的数据库客户端检查同一个查询。我正在关闭这个。