次の正規表現は、カンマ区切りのプレーン値を区切ります
(SELECT regexp_substr(:pCsv,'[^,]+', 1, level)
FROM DUAL
CONNECT BY regexp_substr(:pCsv, '[^,]+', 1, level) IS NOT NULL);
例:
300100033146068, 300100033146071 , 300100033146079
戻り値
300100033146068
300100033146071
300100033146079
SQL IN 演算子で正規表現を使用すると、これは正常に機能します
select *
from mytable
where t.mycolumn IN (SELECT regexp_substr(:pCsv,'[^,]+', 1, level)
FROM DUAL
CONNECT BY regexp_substr(:pCsv, '[^,]+', 1, level) IS NOT NULL);
ただし、コンマ区切りの値が一重引用符で囲まれた文字列リテラルの場合、このクエリは機能しません
'one' , ' two' , 'three'