oracle数据库preparedStatement中使用like的问题

sjtsh 2004-09-04 09:48:46
请问在oracle数据库中
SQL = "select * from table where modeCode like ?";
..

PreparedStatement stmt = conn.preparedStatement(SQL);
stmt.setString(1, "%" + params + "%");
rs = stmt.executeQuery();

上述语句执行后没有记录被得到,系统也没有报错,不知是什么问题。用PreparedStatement处理like的SQL语句(oracle中)到底应该怎么写,谢谢
...全文
287 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
haroyy 2004-09-09
  • 打赏
  • 举报
回复
我用楼主发帖时候的代码测试,完全没有问题,是不是楼主数据库本来就没有记录
Tasia 2004-09-08
  • 打赏
  • 举报
回复
没有错误提示又检索不出结果,就要看看你的数据里有没有匹配的数据了。
XIHSHI 2004-09-07
  • 打赏
  • 举报
回复
UP
sjtsh 2004-09-07
  • 打赏
  • 举报
回复
好像没有提示
就是检索不出结果来
谢谢提醒
Tasia 2004-09-05
  • 打赏
  • 举报
回复
不行,你要给出错误提示啊。
就一个“不行”,人家想帮到你都难啊。
sjtsh 2004-09-05
  • 打赏
  • 举报
回复
再up
sjtsh 2004-09-05
  • 打赏
  • 举报
回复
stmt.setString(1, new String("%" + params + "%"));
这样也不行
stmt.setString(1, "'%" + params + "%'");
这样已经试过了,不行
sjtsh 2004-09-05
  • 打赏
  • 举报
回复
up
Tasia 2004-09-04
  • 打赏
  • 举报
回复
PreparedStatement stmt = conn.prepareStatement(SQL);
stmt.setString(1, "'%" + params + "%'");

在数据库中,字符串都要用单引号括起来。
jimsons 2004-09-04
  • 打赏
  • 举报
回复
试下
PreparedStatement stmt = conn.prepareStatement(SQL);
stmt.setString(1, new String("%" + params + "%"));
sjtsh 2004-09-04
  • 打赏
  • 举报
回复
直接这样写行
我原来就是这样写的,后来想用preparedStatement
jimsons 2004-09-04
  • 打赏
  • 举报
回复
如果直接
SQL = "select * from table where modeCode like '%"+params+"%'";
行不行
sjtsh 2004-09-04
  • 打赏
  • 举报
回复
sorry,是我写错了
原句是PreparedStatement stmt = conn.prepareStatement(SQL);
如果这样写的话
SQL = "select * from table where modeCode like '%?%'";
会出现这样的错误:
java.sql.SQLException: ORA-01006: bind variable does not exist
jimsons 2004-09-04
  • 打赏
  • 举报
回复
还不行的话,试下
SQL = "select * from table where modeCode like '%?%'";
..
stmt.setString(1,params);

jimsons 2004-09-04
  • 打赏
  • 举报
回复
PreparedStatement stmt = conn.prepareStatement(SQL);
才对后面的prepare没有d

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧