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))
我 运行 在数据库客户端中进行相同的查询并且有效。
有人请帮助我或指出正确的方向。我不知道我错过了什么
提前致谢
问题是确实没有数据,我是在不同环境下的数据库客户端检查同一个查询。我正在关闭这个。
我正在尝试使用 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))
我 运行 在数据库客户端中进行相同的查询并且有效。
有人请帮助我或指出正确的方向。我不知道我错过了什么
提前致谢
问题是确实没有数据,我是在不同环境下的数据库客户端检查同一个查询。我正在关闭这个。