本帖最后由 m2shuai 于 2012-10-26 10:52:23 编辑

解决方案 »

  1.   

    你的意思是想把select   *   from   dual   where   x.dd   in(1,2,3)这个语句执行出来的值付给FLAG这个吗? FLAG:=select   *   from   dual   where   x.dd   in(1,2,3); 如果是 这样写就可以了,注意一下类型匹配
      

  2.   

    不是那个意思。
    正常这样写sql:select * from dual where x.dd in(1,2,3) 没有问题。现在1,2,3 当入参穿进来:select   *   from   dual   where   x.dd   in(FLAG);这样没有数值,想问问怎么转换。能不能这这样做。
      

  3.   

    把falg定义成一个数组就可以了
      

  4.   

    不拼不行。in (1,2,3) 代表 in (?,?,?)
    in ('字符值的1,2,3') 代表 in (?) 传入的值是 '1,2,3' 参数个数都变了
    非不能拼接就改SQL结构,变成in(select ...)select regexp_substr('1,2,3','[^,]+',1,level) a from dual connect by level<=3