无法在 JDBC 预语句中使用 LIKE 查询?
查询代码和查询:
ps = conn.prepareStatement("select instance_id, ? from eam_measurement where resource_id in (select RESOURCE_ID from eam_res_grp_res_map where resource_group_id = ?) and DSN like '?' order by 2");
ps.setString(1,"SUBSTR(DSN,27,16)");
ps.setInt(2,defaultWasGroup);
ps.setString(3,"%Module=jvmRuntimeModule:freeMemory%");
rs = ps.executeQuery();
while (rs.next()) { bla blah blah blah ...
返回空的 .ResultSet
通过基本的调试,我发现第三个绑定是问题所在,即
DSN like '?'
我尝试了各种变体,其中最明智的似乎是使用:
DSN like concat('%',?,'%')
但这不起作用,因为我缺少串联字符串的两侧,所以我尝试:'
DSN like ' concat('%',Module=P_STAG_JDBC01:poolSize,'%') ' order by 2
但我似乎找不到一种方法来让他们进入有效的状态。
我错过了什么?