in
collections
で使用されます 、したがって、最初に入力文字列を collection
に変換する必要があります (コンマ区切りに基づいて行に分割することにより)
このようなことを試してください
Select * from employ where id = 12 and org_id in ( SELECT decode(:input_id,null, (select employ.org_id from dual) ,TRIM(REGEXP_SUBSTR(temp, '[^,]+', 1, level)) ) FROM (SELECT :input_id temp FROM DUAL) CONNECT BY level <= REGEXP_COUNT(temp, '[^,]+') )
プレ>ちなみに、この
org_id in ()
true
を返します if:input_id
null
です .別のアプローチ 最初にクエリ全体を文字列として構築し、次に
execute immediate
のいずれかで実行します またはphp
経由 .ただし、これにより SQL インジェクション が発生する可能性があります 懸念。