使用准备好的语句进行选择查询时获取SQL异常 [英] Getting SQL Exception while using prepared statement for select query

查看:145
本文介绍了使用准备好的语句进行选择查询时获取SQL异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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();

大家好,
我遇到了例外情况

Hi All, I am getting following exception

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

列限制为255,路径为= C:\文档和设置 xyz,桌面和 xyzs,它可以很好地与statement.So一起运行。因此,它在准备好的语句中引发异常的原因是什么。

column limit is 255 and path is = "C:\Documents and Settings\xyz\Desktop\xyzs" and it is run fine with statement.So , what is the reason that it is throwing exception in prepared statement.

推荐答案

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 + "%");

这篇关于使用准备好的语句进行选择查询时获取SQL异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆