你的意思是想把select * from dual where x.dd in(1,2,3)这个语句执行出来的值付给FLAG这个吗? FLAG:=select * from dual where x.dd in(1,2,3); 如果是 这样写就可以了,注意一下类型匹配
不是那个意思。 正常这样写sql:select * from dual where x.dd in(1,2,3) 没有问题。现在1,2,3 当入参穿进来:select * from dual where x.dd in(FLAG);这样没有数值,想问问怎么转换。能不能这这样做。
把falg定义成一个数组就可以了
不拼不行。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
正常这样写sql:select * from dual where x.dd in(1,2,3) 没有问题。现在1,2,3 当入参穿进来:select * from dual where x.dd in(FLAG);这样没有数值,想问问怎么转换。能不能这这样做。
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