बाइंड वैरिएबल a . को बाइंड करता है मान, इस मामले में स्ट्रिंग '45,4932,20,19'। आप रैंडी द्वारा सुझाए गए अनुसार डायनेमिक SQL और कॉन्सटेनेशन का उपयोग कर सकते हैं, लेकिन आपको बहुत सावधान रहना होगा कि उपयोगकर्ता इस मान को संशोधित करने में सक्षम नहीं है, अन्यथा आपके पास SQL इंजेक्शन समस्या है।
पीएल/एसक्यूएल प्रक्रिया में आईडी को शीर्ष संग्रह में रखना एक सुरक्षित मार्ग होगा:
declare
array apex_application_global.vc_arr2;
begin
array := apex_util.string_to_table (:P5_USER_ID_LIST, ',');
apex_collection.create_or_truncate_collection ('P5_ID_COLL');
apex_collection.add_members ('P5_ID_COLL', array);
end;
फिर अपनी क्वेरी को इसमें बदलें:
SELECT * FROM users u WHERE u.user_id IN
(SELECT c001 FROM apex_collections
WHERE collection_name = 'P5_ID_COLL')