Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

अल्पविराम सीमांकित स्ट्रिंग में पीएल/एसक्यूएल क्वेरी

बाइंड वैरिएबल 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')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL डेवलपर में एक नया डेटाबेस और नया कनेक्शन बनाना

  2. समानांतर कथन में dml त्रुटि लॉगिंग को क्यों अनदेखा किया गया?

  3. यूनिक्स कॉर्न शैल स्क्रिप्ट में Oracle SP आउट परम SYS_REFCURSOR से डेटा प्राप्त करें

  4. स्प्रिंग बूट एक्चुएटर /स्वास्थ्य समापन बिंदु डेटाबेस या फ़ाइल सिस्टम जानकारी नहीं दिखाता है

  5. Oracle SQL मिलान क्वेरी का चयन करें