Java 使用select查询的prepared语句时获取SQL异常

Java 使用select查询的prepared语句时获取SQL异常,java,db2,sqlexception,Java,Db2,Sqlexception,大家好, 我得到了以下例外 StringBuilder sqlQry = new StringBuilder(); sqlQry.append("SELECT LIB, PATH") .append(" FROM OBJ") .append(" INNER JOIN SRC ON SRC.MBR = OBJ.LOBJ") .append(" WHERE TYPE = '*PGM'") .append(" AND SRC.PATH LIKE '").append("?").append("%'"

大家好, 我得到了以下例外

StringBuilder sqlQry = new StringBuilder();
sqlQry.append("SELECT LIB, PATH")
.append(" FROM OBJ")
.append(" INNER JOIN SRC ON SRC.MBR = OBJ.LOBJ")
.append(" WHERE  TYPE = '*PGM'")
.append(" AND SRC.PATH LIKE '").append("?").append("%'");

PreparedStatement ps = accssConn.prepareStatement(sqlQry.toString());
ps.setString(1, path);

rs = ps.executeQuery();

列限制为255,路径为=“C:\Documents and Settings\xyz\Desktop\xyzs”,语句可以正常运行。那么,它在准备好的语句中引发异常的原因是什么。

检查您的单引号,我认为其中一个缺少结束引号。还可以尝试将单引号更改为双引号,并像“*PGM”那样对其进行转义

[jcc][10145][10844][3.63.123] Invalid parameter 1: Parameter index is out of range. ERRORCODE=-4461, SQLSTATE=42815
StringBuilder sqlQry = new StringBuilder();

sqlQry.append("SELECT LIB, PATH")
.append(" FROM OBJ")
.append(" INNER JOIN SRC ON SRC.MBR = OBJ.LOBJ")
.append(" WHERE  TYPE = '*PGM'")
.append(" AND SRC.PATH LIKE ").append("?");

PreparedStatement ps = accssConn.prepareStatement(sqlQry.toString());

ps.setString(1, path + "%");