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

SQL क्वेरी में वैकल्पिक पैरामीटर को कैसे संभालें?

हाँ, निम्न में से किसी का उपयोग करके:

WHERE m.id_pk = NVL(n_RequiredId, m.id_pk);
WHERE m.id_pk = COALESCE(n_RequiredId, m.id_pk);
WHERE (n_RequiredId IS NULL OR m.id_pk = n_RequiredId);

...प्रयोज्य नहीं हैं। वे काम करेंगे, लेकिन उपलब्ध विकल्पों में से सबसे खराब प्रदर्शन करेंगे।

यदि आपके पास केवल एक पैरामीटर है, तो IF/ELSE और अलग, अनुरूप कथन एक बेहतर विकल्प हैं।

उसके बाद अगला विकल्प डायनेमिक SQL है। लेकिन यदि आप पहले उदाहरण में गैर-सरगने योग्य विधेय को आगे बढ़ाते हैं तो डायनेमिक SQL को कोड करना बेकार है। डायनेमिक एसक्यूएल आपको कई रास्तों को समायोजित करते हुए क्वेरी को तैयार करने की अनुमति देता है। लेकिन यह SQL इंजेक्शन को भी जोखिम में डालता है, इसलिए इसे पैरामीटरयुक्त प्रश्नों के पीछे किया जाना चाहिए (अधिमानतः संकुल में संग्रहीत प्रक्रियाओं/कार्यों के भीतर।



  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. ओरेकल एसक्यूएल प्लस एसक्यूएल फाइल में कमांड कैसे खत्म करें?

  3. ऑरैकल में टेक्स्ट फ़ाइल से तालिका में डेटा लोड हो रहा है

  4. कॉलम डेटाटाइप में BYTE और CHAR के बीच अंतर

  5. प्रदाता Oracle क्लाइंट के संस्करण के साथ संगत नहीं है