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

ऑरैकल इन क्लॉज में केवल स्थिर डेटा के लिए 1000 की सीमा क्यों है?

यह किसी भी अभिव्यक्ति सूची पर प्रतिबंध है:

<ब्लॉककोट>

अल्पविराम द्वारा सीमित भावों की सूची में 1000 से अधिक भाव नहीं हो सकते हैं।

1000 क्यों? संभावित रूप से कार्यान्वयन को किसी प्रकार की सीमा की आवश्यकता होती है, और शायद यह पर्याप्त से अधिक लग रहा था। हो सकता है, या निश्चित रूप से हो सकता है जब वह सीमा दशकों पहले निर्धारित की गई थी, सीमा के लिए एक प्रदर्शन कारण भी, विशेष रूप से IN के रूप में एकाधिक OR . में कनवर्ट किया गया है इस मामले में ऑप्टिमाइज़र द्वारा दिए गए कथन (यदि आप निष्पादन योजना को देखते हैं तो आप देख सकते हैं)।

मैं एक उचित परिदृश्य के साथ आने के लिए संघर्ष करता हूं जिसे उसके पास कहीं भी प्राप्त करने की आवश्यकता होती है, निश्चित मूल्यों के साथ जो अन्य डेटा से एक सबक्वायरी के रूप में प्राप्त नहीं किया जा सकता है।

मुझे संदेह है कि यह कुछ हद तक तार्किक डेटाबेस सीमाओं से संबंधित है जो कहते हैं कि आपके पास तालिका में 1000 से अधिक कॉलम नहीं हो सकते हैं, उदाहरण के लिए; चूंकि एक एक्सप्रेशन लिस्ट का उपयोग इन्सर्ट स्टेटमेंट में किया जाता है ताकि कॉलम और वैल्यू दोनों को सूचीबद्ध किया जा सके, एक्सप्रेशन लिस्ट को उससे मेल खाने में सक्षम होना चाहिए, लेकिन हो सकता है कि इससे अधिक होने का कोई कारण न हो।

निश्चित रूप से अटकलें ... सॉफ़्टवेयर के आंतरिक भाग को देखे बिना आपको निश्चित उत्तर मिलने की संभावना नहीं है।



  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 डेटाबेस में मान्य समय क्षेत्रों की सूची कैसे लौटाएं?

  2. कैसे जांचें कि फ़ाइल पीएल/एसक्यूएल का उपयोग कर छवि है या नहीं?

  3. Oracle EXPAND_SQL_TEXT का उपयोग करना

  4. Oracle में एक ऑटो इंक्रीमेंट प्राथमिक कुंजी को कैसे परिभाषित करें

  5. IN बनाम OR Oracle, कौन सा तेज़?