程序代码如下:
String dmList="('01','02','05')";
List list=session.createSQLQuery("select dm,mc from table1 where dm in ?")
.setString(0,dmList)
.list();
不管dmList的值如何设置,查询结构都是为空。
数据库是oracle。对应的oracle语句
select dm,mc from table1 where dm in ('01','02','05')
执行正常,可以查处结果集。问题可能出现在dmList的写法上。
如何解决,特向朋友们求助。
String dmList="('01','02','05')";
List list=session.createSQLQuery("select dm,mc from table1 where dm in ?")
.setString(0,dmList)
.list();
不管dmList的值如何设置,查询结构都是为空。
数据库是oracle。对应的oracle语句
select dm,mc from table1 where dm in ('01','02','05')
执行正常,可以查处结果集。问题可能出现在dmList的写法上。
如何解决,特向朋友们求助。
解决方案 »
- sql通过链接服务器连接oracle问题(急)
- 关于日期
- select语句出现的问题
- 是优化高手的进来优化下这个SQL
- SQL 转ORACLE 存储过程
- oracle 10g的ip地址修改以后,http://localhost:1158/em不能访问的问题
- 急救解决ORACLE存储过程返回记录集的问题。
- 怎么把日期格式化为:2008-02-11:2008-02
- 这个表达式的结果是什么?
- RedHat8.0,装Jsdk1.4.1_01已经成功(可做Java程序了),但装Oracle时,提示:P/bin/jre下找不到Java Runtime Envrionment
- 两系统数据实时同步
- oracle goldengate
dmList = "'01'";
createSQLQuery("select dm,mc from table1 where dm in (?)").这个应该行。因为你在绑定变量的时候其实传入的是一个sql语句的部分,带了().这种情况即使是在pl/sql里面也是不允许的,需要用动态sql在java里面,这种in的情况没碰过,有空帮你查查。
回2楼朋友:你说的有道理,如果dmList只有一个参数,可以执行;如果有多个参数,查询就没有结果。
回3楼朋友:直接拼接sql会使得语句很难看。
Query query = session.createSQLQuery("select dm,mc from table1 where dm in (?,?,?)")
query.setString(0,'01') ;
query.setString(1,'02') ;
query.setString(2,'05') ;
List list=query .list();