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中)到底应该怎么写,谢谢
...全文
227 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-04 09:48
社区公告
暂无公告