日期:2014-05-17  浏览次数:20725 次

oracle存储过程中sql语句的问题

select count(参数1), 参数1
from buspkm
where pkmord in (参数2)
group by 参数1;

其中参数2是'xxxxxx','xxxxxx','xxxxxx'样式的数据
请教大家为什么这条SQL查询结果总是空的?

------解决方案--------------------
引用:

select count(参数1), 参数1
from buspkm
where pkmord in (参数2)
group by 参数1;

其中参数2是'xxxxxx','xxxxxx','xxxxxx'样式的数据
请教大家为什么这条SQL查询结果总是空的?

如果你是通过参数的方式传进来,这种格式是无法解析的,建议用动态SQL
------解决方案--------------------
因为in (?) 和in (?,?,?)是不一样的。
------解决方案--------------------
楼上说的没错,还是动态拼接一个SQL String,再执行
------解决方案--------------------
存储过程或者sql代码里面 将参数2改为集合形式
------解决方案--------------------
引用:

select count(参数1), 参数1
from buspkm
where pkmord in (参数2)
group by 参数1;

其中参数2是'xxxxxx','xxxxxx','xxxxxx'样式的数据
请教大家为什么这条SQL查询结果总是空的?

要把参数2里面的内容解析出来,
相当于in(子查询),把里面的值截取出来就行了