2017-05-11 10 views
6

में परिवर्तन/नई सुविधाओं के लिए ओरेकल 12 सी प्रलेखन मैंने अभी पाया है कि ओरेकल 12 सी एक क्वेरी को कई स्तरों से गहराई से समर्थन करता है जो 11 जी और पिछले संस्करणों में असमर्थित है।एसक्यूएल

select 
    * 
from 
    tab1 a 
where 
    not exists 
     (select 
       * 
      from 
       (select 
        * 
       from 
        tab2 b 
       where a.X = b.X)) 

लेकिन मुझे ओरेकल वेबसाइट में यह दस्तावेज नहीं मिला। क्या ओरेकल 12 सी में कोई अन्य ऐसी छिपी हुई SQL विशेषताएं शामिल हैं? क्या 12 सी में SQL में ऐसे सभी परिवर्तन कहीं भी दस्तावेज किए गए हैं?

+2

प्रत्येक रिलीज "नई विशेषताएं गाइड" के साथ आता है: http://docs.oracle.com/database/121/NEWFT/toc.htm मुझे इस संदर्भ से मेल खाने वाले किसी भी संदर्भ को नहीं मिल सकता है। –

+0

@a_horse_with_no_name हां, मैंने पोस्ट करने से पहले उन दस्तावेज़ों को भी चेक किया था। अब मुझे लगता है कि यह ओरेकल द्वारा मिस्ड डॉक्यूमेंटेशन का एक मामला है (इस तरह की एक महत्वपूर्ण विशेषता है जो एसक्यूएल बदलती है!)। – toddlermenot

+3

मैं इस सुविधा पर भरोसा नहीं करता, अगर मैं तुम थे; यह संभावना है कि यह इरादा व्यवहार नहीं है (यानी एक बग)। – Boneist

उत्तर

0

इसे समझाने के लिए हमें इतिहास में थोड़ा सा गोता लगाने की जरूरत है। 1 से अधिक स्तर के साथ सहसंबद्ध उप प्रश्नों का उपयोग करने के लिए

क्षमता Oracle 10g आर 1 में भी था और इसे ठीक से प्रलेखित किया गया था (https://docs.oracle.com/cd/B14117_01/server.101/b10759/queries007.htm) वापस उन दिनों ...

ओरेकल एक सहसंबद्ध सबक्वेरी करता है जब एक नेस्टेड सबक्वायरी उपरोक्त के ऊपर के स्तरों की संख्या किसी भी को संदर्भित तालिका से एक कॉलम का संदर्भ देता है।

... लेकिन यह ठीक से काम नहीं कर रहा था। :)

तो ओरेकल 10 जी आर 2 से शुरू करना यह कार्यक्षमता अक्षम कर दी गई थी और दस्तावेज़ीकरण बदल गया था। (यदि आप एक पास पहुंच है) आप बग 15,990,897 देख सकते हैं

इसके अलावा: 2 रा स्तर सबक्वेरी में प्रयुक्त सहसंबद्ध चर के साथ क्वेरी के ORA-904 Metalink पर साथ विफल (उत्पाद संस्करण 12.1.0.1.0 में फिक्स्ड)। मुझे यकीन नहीं है कि इसे बग के रूप में क्यों माना जाता है क्योंकि यह दस्तावेज के अनुसार काम करता है (10 जी आर 2, 11 जी आर 1, 11 जी आर 2) लेकिन यह वही है।

तो, कार्यक्षमता 10.1 के बाद बंद कर दिया गया और 12.1 लेकिन फिर भी 12.2 (https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/Using-Subqueries.html) के लिए दस्तावेज़ से पहले कहते हैं

ओरेकल एक सहसंबद्ध सबक्वेरी करता है जब एक नेस्टेड सबक्वेरी संदर्भ एक मेज से एक स्तंभ एक माता पिता के बयान के लिए भेजा एक सबक्वायरी के ऊपर स्तर।

कट एक लंबी कहानी संक्षेप में, इस कार्यक्षमता 12C आर 1 में सक्षम है और 12C R2 लेकिन प्रलेखन निश्चित नहीं है और जाहिरा तौर पर नई में इस सुधार के बारे में उल्लेख नहीं सुविधा मार्गदर्शिका है।

पीएस। जहां तक ​​मुझे याद है कि मानक एसक्यूएल 2003 सहसंबंध केवल एक स्तर तक गहराई की अनुमति देता है - सभी को चेक करने के लिए आपका स्वागत है (http://www.wiscorp.com/sql_2003_standard.zip)। लेकिन ओरेकल के मानक के ऊपर भी बहुत सारे सुधार हैं।