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 इंजेक्शन
बढ़ा सकता है चिंताओं।