SELECT * FROM TABLE1 WHERE parm1 IN ('v1','v2','v3');
参数化v1, v2, v2 通过动态sql可以实现,也可以通过普通sql语句将V1, V2, V3转化成结果集。
SELECT regexp_substr(x, '[^,]+', 1, level) x FROM ( SELECT 'v1,v2,v3' X FROM DUAL ) connect by level <= length(x) - length(replace(x,',')) + 1; X -------- v1 v2 v3
得到V1, V2, V3的结果集,这样就可以构建IN字句:
SELECT * FROM TABLE1 WHERE parm1 IN (SELECT regexp_substr(x, '[^,]+', 1, level) x FROM ( SELECT 'v1,v2,v3' X FROM DUAL ) connect by level <= length(x) - length(replace(x,',')) + 1);