in används med collections , så din inmatningssträng bör först konverteras till collection (genom att dela upp i rader, baserat på kommaavgränsare)
Prova något sånt här
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, '[^,]+')
)
förresten, detta org_id in () returnerar true om :input_id är null .
Ett annat tillvägagångssätt skulle vara att konstruera hela frågan som en sträng först och sedan köra den antingen med execute immediate eller genom php . Detta kan dock öka sql-injektion
bekymmer.