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

जहां सशर्त (डायनेमिक क्वेरी) या अस्पष्ट मान के बिना रेडीस्टेटमेंट शून्य है

आपका काम करने वाला समाधान ठीक है (और जैसा मैंने पहले इस्तेमाल किया है ) यदि आप केवल एक बार बाइंड करना चाहते हैं, तो आप वास्तविक क्वेरी को मान प्रदान करने के लिए CTE या इनलाइन दृश्य का उपयोग कर सकते हैं:

WITH CTE AS (
    SELECT ? AS REAL_VALUE FROM DUAL
)
SELECT C.*   -- but not * really, list all the columns
FROM CTE
JOIN CUSTOMERS C
ON (CTE.REAL_VALUE IS NULL AND C.CUSTOMER_ID IS NULL)
    OR C.CUSTOMER_ID = CTE.REAL_VALUE

इसलिए बाइंड करने के लिए केवल एक प्लेसहोल्डर है।

हालांकि, मुझे वास्तव में जावा पक्ष की किसी शाखा के साथ कोई समस्या दिखाई नहीं देती है, जब तक कि आपकी वास्तविक क्वेरी बहुत अधिक जटिल न हो और महत्वपूर्ण दोहराव की ओर ले जाए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विजुअल स्टूडियो 2010 का उपयोग करके ओरेकल डेटाबेस प्रोजेक्ट कैसे बनाएं?

  2. ऑरैकल क्वेरी में दिनांक पैरामीटर जोड़ें

  3. उत्पादन में बैबेल का उपयोग करना - स्क्रिप्ट को पूर्व-संकलित कैसे करें

  4. ORA-04063 कैसे हल करें:SYS देखें।ALL_QUEUE_TABLES में त्रुटियां हैं?

  5. Oracle regexp_replace द्वारा अंतरिक्ष से अलग की गई सूची से डुप्लिकेट कैसे निकालें?