in collections . के साथ प्रयोग किया जाता है , इसलिए आपकी इनपुट स्ट्रिंग को पहले collections . में परिवर्तित किया जाना चाहिए (पंक्तियों में तोड़कर, अल्पविराम सीमांकक के आधार पर)
कुछ इस तरह का प्रयास करें
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 लौटाएगा अगर :input_id null है ।
एक और तरीका पहले पूरी क्वेरी को एक स्ट्रिंग के रूप में बनाना होगा और फिर इसे execute immediate . के साथ निष्पादित करना होगा या php . के माध्यम से . हालांकि यह sql इंजेक्शन
बढ़ा सकता है चिंताओं।