यह थोड़ा अजीब लग रहा है लेकिन Oracle 11g वास्तव में इस तरह के एक प्रश्नओरेकल को एक ही खंड में समान alias_name के साथ कई सबक्वायरीज़ क्यों अनुमति देते हैं?
with
a as (select 1 from dual),
a as (select 2 from dual)
select *
from a;
चलाने के लिए यह पहली बार सबक्वेरी के परिणाम देता है की अनुमति देता है (अर्थात 1)।
मैं ऐसी स्थिति की कल्पना नहीं कर सकता जब ऐसी सुविधा उपयोगी हो। मेरे मामले में यह एक समस्या का कारण बन गया जब मैं प्रतिलिपि/पेस्ट करने के बाद एक सबक्वायरी का नाम बदलना भूल गया और समग्र क्वेरी गलत/अप्रत्याशित परिणाम लौट रही थी। सौभाग्य से क्वेरी काफी सरल थी और कारण तुरंत पता चला था।
वैसे भी, मैं ओरेकल को ऐसे मामले में फेंकने और अपवाद की उम्मीद करता हूं।
तो, मेरा सवाल यह है कि क्या ऐसा व्यवहार एक विशेषता या बग है? यदि सुविधा, जहां यह उपयोगी हो सकता है?
धन्यवाद।
बीटीडब्ल्यू, SQLite समान क्वेरी को चलाने और 'डुप्लिकेट WITH तालिका नाम' अपवाद फेंकने की अनुमति नहीं देता है। अभी तक किसी अन्य डीबी इंजन का प्रयास नहीं किया।
पोस्टग्रेज़ या तो अनुमति नहीं देता है। –
मुझे लगता है कि यह एक बग है - आप निश्चित रूप से माई ओरैकल सपोर्ट पर कोई मुद्दा उठा सकते हैं। –
12.1.0.2 में पुन: उत्पादित। –