मैंने लोगों को इस तालिका का जिक्र करते सुना है और यह निश्चित नहीं था कि यह किस बारे में था।
मैंने लोगों को इस तालिका का जिक्र करते सुना है और यह निश्चित नहीं था कि यह किस बारे में था।
जवाबों:
यह एक प्रकार का डमी टेबल है जिसका चयन एकल रिकॉर्ड के लिए किया जाता है जब आप वास्तव में डेटा में रुचि नहीं रखते हैं, लेकिन इसके बजाय कुछ सिस्टम फ़ंक्शन के परिणामों का चयन करें।
जैसे select sysdate from dual;
से विकिपीडिया
इतिहास
DUAL तालिका आंतरिक विचारों में शामिल होने के लिए तालिका प्रदान करने के लिए Oracle Corporation के चक वीस द्वारा बनाई गई थी:
मैंने Oracle डेटा डिक्शनरी में एक अंतर्निहित वस्तु के रूप में DUAL तालिका बनाई। यह कभी भी खुद को देखने के लिए नहीं था, बल्कि एक दृश्य के अंदर इस्तेमाल किया गया था, जो कि क्वियर होने की उम्मीद थी। विचार यह था कि आप DUAL तालिका में एक JOIN कर सकते हैं और अपनी तालिका में हर एक पंक्ति के परिणाम में दो पंक्तियाँ बना सकते हैं। फिर, ग्रुप बीवाई का उपयोग करके, परिणामी जोड़ को संक्षेप में डेटा सीमा के लिए और INDEX सीमा (ओं) के लिए भंडारण की मात्रा दिखाने के लिए संक्षेपित किया जा सकता है। DUAL नाम, केवल एक से पंक्तियों की एक जोड़ी बनाने की प्रक्रिया के लिए उपयुक्त लग रहा था। 1
यह ऊपर से स्पष्ट नहीं हो सकता है, लेकिन मूल DUAL तालिका में दो पंक्तियाँ थीं (इसलिए इसका नाम)। आजकल इसकी केवल एक पंक्ति है।
अनुकूलन
DUAL मूल रूप से एक तालिका थी और डेटाबेस इंजन DUAL से चयन करते समय तालिका पर डिस्क IO का प्रदर्शन करेगा। यह डिस्क IO आमतौर पर तार्किक IO था (भौतिक डिस्क एक्सेस शामिल नहीं) क्योंकि डिस्क ब्लॉक आमतौर पर पहले से ही मेमोरी में कैश्ड थे। इससे डीयूएएल टेबल के खिलाफ बड़ी मात्रा में तार्किक आईओ हुआ।
Oracle डेटाबेस के बाद के संस्करणों को अनुकूलित किया गया है और डेटाबेस अब DUAL टेबल पर भौतिक या तार्किक IO नहीं करता है, भले ही DUAL तालिका अभी भी वास्तव में मौजूद है।
मुझे लगता है कि यह विकिपीडिया लेख स्पष्ट करने में मदद कर सकता है।
http://en.wikipedia.org/wiki/DUAL_table
DUAL तालिका एक विशेष एक-पंक्ति तालिका है जो सभी Oracle डेटाबेस स्थापनाओं में डिफ़ॉल्ट रूप से मौजूद है। यह स्यूडोक्यूलेट या USER के रूप में छद्म चॉकलेट के चयन में उपयोग के लिए उपयुक्त है। तालिका में एक एकल VARCHAR2 (1) स्तंभ है जिसे DUMMY कहा जाता है, जिसका मान "X" है।
एक छद्म तालिका की तरह आप के खिलाफ आदेश चला सकते हैं और वापस परिणाम प्राप्त कर सकते हैं, जैसे कि sysdate। यह भी जाँचने में आपकी मदद करता है कि ओरेकल है या नहीं और एसक्यूएल सिंटैक्स आदि की जाँच करें।
केवल 1 पंक्ति और 1 कॉलम के साथ Oracle में एक उपयोगिता तालिका। इसका उपयोग कई अंकगणितीय कार्यों को करने के लिए किया जाता है और आम तौर पर इसका उपयोग किया जा सकता है जहां किसी को एक ज्ञात आउटपुट उत्पन्न करने की आवश्यकता होती है।
चयन करें * दोहरी से;
एक एकल पंक्ति देगा, जिसमें "DUMMY" नामक एकल कॉलम और "X" का मान यहां दिखाया गया है:
DUMMY ----- X
DUAL के बारे में अधिक तथ्य ...।
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1562813956388
यहां किए गए रोमांचक प्रयोग, और टॉम द्वारा अधिक रोमांचक स्पष्टीकरण
DUAL तालिका एक विशेष एक-पंक्ति तालिका है जो सभी Oracle डेटाबेस स्थापनाओं में डिफ़ॉल्ट रूप से मौजूद है। यह SYSDATE या USER जैसे छद्म चॉकलेट के चयन में उपयोग के लिए उपयुक्त है
तालिका में एक एकल VARCHAR2 (1) स्तंभ है जिसे DUMMY कहा जाता है जिसका मान "X" है
आप इसके बारे में http://en.wikipedia.org/wiki/DUAL_table में पढ़ सकते हैं
यह उस खाली 1 पंक्ति से अंदर डालने के लिए एक वस्तु है। उदाहरण के लिए: दोहरी से 1 का चयन करें; रिटर्न 1
दोहरी से 21 + 44 का चयन करें; 65 देता है
[अनुक्रम] का चयन करें। दोहरी से .nextval; अनुक्रम से अगला मान लौटाता है।
DUAL हम मुख्य रूप से अनुक्रमों से अगले नंबर प्राप्त करने के लिए इस्तेमाल किया।
सिंटैक्स: 'अनुक्रम_नाम' का चयन करें। NEXTVAL DUAL से
यह एक पंक्ति एक कॉलम मान (NEXTVAL स्तंभ नाम) लौटाएगा।
एक अन्य स्थिति जिसकी आवश्यकता select ... from dual
तब होती है जब हम बिल्ट इन DBMS_METADATA.GET_DDL
फंक्शन का उपयोग करके विभिन्न डेटाबेस ऑब्जेक्ट्स (जैसे टेबल, फंक्शन, ट्राइगर, पैकेजेज) के लिए कोड (डेटा परिभाषा) प्राप्त करना चाहते हैं :
select DBMS_METADATA.GET_DDL('TABLE','<table_name>') from DUAL;
select DBMS_METADATA.GET_DDL('FUNCTION','<function_name>') from DUAL;
यह सच है कि आजकल IDE एक तालिका के DDL को देखने की क्षमता प्रदान करते हैं, लेकिन SQL प्लस जैसे सरल वातावरण में यह वास्तव में आसान हो सकता है।
संपादित करें
एक अधिक सामान्य स्थिति: मूल रूप से, जब हमें मानक SQL स्टेटमेंट के अंदर किसी PL / SQL प्रक्रिया का उपयोग करने की आवश्यकता होती है, या जब हम कमांड लाइन से एक प्रक्रिया को कॉल करना चाहते हैं:
select my_function(<input_params>) from dual;
दोनों व्यंजनों जोश जुनो और मैट एरिना की पुस्तक 'ओरेकल पीएल / एसक्यूएल व्यंजनों' से लिए गए हैं
DUAL सभी Oracle डेटाबेस में डिफ़ॉल्ट रूप से मौजूद एक पंक्ति, एक स्तंभ तालिका है। DUAL का मालिक SYS है।
DUAL डेटा कार्यों के साथ Oracle डेटाबेस द्वारा स्वचालित रूप से बनाई गई एक तालिका है। इसका उपयोग हमेशा ऑपरेटिंग सिस्टम फ़ंक्शन (जैसे दिनांक, समय, अंकगणितीय अभिव्यक्ति।), आदि के लिए किया जाता है।
SELECT SYSDATE from dual;