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

关于in
select   a,b
from   tbl
where   c   in( '0001,   0002 ')
这样直接运行sql是可以正确检索出数据的

但是如果在package   body里写方法

用参数如x传递 '0001,   0002 '就检索不出来
select   a,b
from   tbl
where   c   in(x)

这是什么原因,和in有什么关系吗?
或者有其他解决办法?

------解决方案--------------------
select a,b from tbl where c in( '0001 ', '0002 ')
不等于
select a,b from tbl where c in( '0001,0002 ')

楼主可以用动态PL/SQL来实现。

------解决方案--------------------
动态语句或者可能用以下方法可以解决,lz不防一试
select a,b
from tbl
where instr(c,x)> 0
------解决方案--------------------
到底是 '0001, 0002 '还是 '0001 ', '0002 '?
------解决方案--------------------
是 '0001 ', '0002 '
------解决方案--------------------
(DECODE(参数1,0,CCC,参数2)
转换有问题...分析一下转换后的类型