写过存储关键 in()的用法问题
PROCEDURE   中有个入参FLAG   ,数值为:   
 FLAG:=“1,2,3”;   
 PROCEDURE   有一个sql语句   如:   
 select   *   from   dual   where   x.dd   in(FLAG);   
 如果   FLAG:=1;   且   x.dd有1,2,3的值。数值出来1的值。 
 如果   FLAG:=1,2,3;出不来值。     
 sql没有使用拼接   然后exec执行。就是直接写的sql,想问问   能否把入参FLAG:=“1,2,3”;   转换成 
 select   *   from   dual   where   x.dd   in(1,2,3);的语句执行。   
 不知道说明白没有。   
 不准备使用SQL拼接。     
------解决方案--------------------
不拼不行。
in (1,2,3) 代表 in (?,?,?)
in ('字符值的1,2,3') 代表 in (?) 传入的值是 '1,2,3' 参数个数都变了
非不能拼接就改SQL结构,变成in(select ...)
SQL code
select regexp_substr('1,2,3','[^,]+',1,level) a from dual connect by level<=3