ओरेकल में दोहरी तालिका क्या है?


229

मैंने लोगों को इस तालिका का जिक्र करते सुना है और यह निश्चित नहीं था कि यह किस बारे में था।


2
asktom.oracle.com/pls/asktom/… दोहरे के बारे में विवरण
श्रीविनांक

सबसे अच्छा ans यहाँ दोहरी asktom.oracle.com/pls/asktom/… के बारे में सब है , लोग उपरोक्त टिप्पणी लिंक पर अधिक ध्यान नहीं दे रहे हैं कि मैं यहाँ क्यों टिप्पणी कर रहा हूँ .. इस पर एक नज़र है, आपको अफसोस नहीं होगा
वरुण

जवाबों:


229

यह एक प्रकार का डमी टेबल है जिसका चयन एकल रिकॉर्ड के लिए किया जाता है जब आप वास्तव में डेटा में रुचि नहीं रखते हैं, लेकिन इसके बजाय कुछ सिस्टम फ़ंक्शन के परिणामों का चयन करें।

जैसे select sysdate from dual;

Http://www.adp-gmbh.ch/ora/misc/dual.html देखें


79

यह एक डमी टेबल है जिसमें एक तत्व है। यह उपयोगी है क्योंकि ओरेकल जैसे बयानों की अनुमति नहीं देता है

 SELECT 3+4

आप लिखकर इस प्रतिबंध के आसपास काम कर सकते हैं

 SELECT 3+4 FROM DUAL

बजाय।


70

से विकिपीडिया

इतिहास

DUAL तालिका आंतरिक विचारों में शामिल होने के लिए तालिका प्रदान करने के लिए Oracle Corporation के चक वीस द्वारा बनाई गई थी:

मैंने Oracle डेटा डिक्शनरी में एक अंतर्निहित वस्तु के रूप में DUAL तालिका बनाई। यह कभी भी खुद को देखने के लिए नहीं था, बल्कि एक दृश्य के अंदर इस्तेमाल किया गया था, जो कि क्वियर होने की उम्मीद थी। विचार यह था कि आप DUAL तालिका में एक JOIN कर सकते हैं और अपनी तालिका में हर एक पंक्ति के परिणाम में दो पंक्तियाँ बना सकते हैं। फिर, ग्रुप बीवाई का उपयोग करके, परिणामी जोड़ को संक्षेप में डेटा सीमा के लिए और INDEX सीमा (ओं) के लिए भंडारण की मात्रा दिखाने के लिए संक्षेपित किया जा सकता है। DUAL नाम, केवल एक से पंक्तियों की एक जोड़ी बनाने की प्रक्रिया के लिए उपयुक्त लग रहा था। 1

यह ऊपर से स्पष्ट नहीं हो सकता है, लेकिन मूल DUAL तालिका में दो पंक्तियाँ थीं (इसलिए इसका नाम)। आजकल इसकी केवल एक पंक्ति है।

अनुकूलन

DUAL मूल रूप से एक तालिका थी और डेटाबेस इंजन DUAL से चयन करते समय तालिका पर डिस्क IO का प्रदर्शन करेगा। यह डिस्क IO आमतौर पर तार्किक IO था (भौतिक डिस्क एक्सेस शामिल नहीं) क्योंकि डिस्क ब्लॉक आमतौर पर पहले से ही मेमोरी में कैश्ड थे। इससे डीयूएएल टेबल के खिलाफ बड़ी मात्रा में तार्किक आईओ हुआ।

Oracle डेटाबेस के बाद के संस्करणों को अनुकूलित किया गया है और डेटाबेस अब DUAL टेबल पर भौतिक या तार्किक IO नहीं करता है, भले ही DUAL तालिका अभी भी वास्तव में मौजूद है।


21

मुझे लगता है कि यह विकिपीडिया लेख स्पष्ट करने में मदद कर सकता है।

http://en.wikipedia.org/wiki/DUAL_table

DUAL तालिका एक विशेष एक-पंक्ति तालिका है जो सभी Oracle डेटाबेस स्थापनाओं में डिफ़ॉल्ट रूप से मौजूद है। यह स्यूडोक्यूलेट या USER के रूप में छद्म चॉकलेट के चयन में उपयोग के लिए उपयुक्त है। तालिका में एक एकल VARCHAR2 (1) स्तंभ है जिसे DUMMY कहा जाता है, जिसका मान "X" है।


10

यह ओरेकल में विशेष तालिका है। मैं अक्सर गणना या सिस्टम चर की जाँच के लिए इसका उपयोग करता हूं। उदाहरण के लिए:

  • Select 2*4 from dual गणना के परिणाम को प्रिंट करता है
  • Select sysdate from dual सर्वर की वर्तमान तिथि प्रिंट करता है।

4

एक छद्म तालिका की तरह आप के खिलाफ आदेश चला सकते हैं और वापस परिणाम प्राप्त कर सकते हैं, जैसे कि sysdate। यह भी जाँचने में आपकी मदद करता है कि ओरेकल है या नहीं और एसक्यूएल सिंटैक्स आदि की जाँच करें।


4

केवल 1 पंक्ति और 1 कॉलम के साथ Oracle में एक उपयोगिता तालिका। इसका उपयोग कई अंकगणितीय कार्यों को करने के लिए किया जाता है और आम तौर पर इसका उपयोग किया जा सकता है जहां किसी को एक ज्ञात आउटपुट उत्पन्न करने की आवश्यकता होती है।

चयन करें * दोहरी से;

एक एकल पंक्ति देगा, जिसमें "DUMMY" नामक एकल कॉलम और "X" का मान यहां दिखाया गया है:

DUMMY
----- 
X


2

DUAL तालिका एक विशेष एक-पंक्ति तालिका है जो सभी Oracle डेटाबेस स्थापनाओं में डिफ़ॉल्ट रूप से मौजूद है। यह SYSDATE या USER जैसे छद्म चॉकलेट के चयन में उपयोग के लिए उपयुक्त है

तालिका में एक एकल VARCHAR2 (1) स्तंभ है जिसे DUMMY कहा जाता है जिसका मान "X" है

आप इसके बारे में http://en.wikipedia.org/wiki/DUAL_table में पढ़ सकते हैं


1

उन कार्यों का उपयोग करने के लिए PL / SQL विकास में DUAL आवश्यक है जो केवल SQL में उपलब्ध हैं

जैसे

DECLARE
x XMLTYPE;
BEGIN
SELECT xmlelement("hhh", 'stuff')
INTO x
FROM dual;
END;

0

यह उस खाली 1 पंक्ति से अंदर डालने के लिए एक वस्तु है। उदाहरण के लिए: दोहरी से 1 का चयन करें; रिटर्न 1

दोहरी से 21 + 44 का चयन करें; 65 देता है

[अनुक्रम] का चयन करें। दोहरी से .nextval; अनुक्रम से अगला मान लौटाता है।


0

DUAL हम मुख्य रूप से अनुक्रमों से अगले नंबर प्राप्त करने के लिए इस्तेमाल किया।

सिंटैक्स: 'अनुक्रम_नाम' का चयन करें। NEXTVAL DUAL से

यह एक पंक्ति एक कॉलम मान (NEXTVAL स्तंभ नाम) लौटाएगा।


1
यह 11 जी के बाद से आवश्यक नहीं है। अनुक्रम पीएल / एसक्यूएल में मूल रूप से इस्तेमाल किया जा सकता है।
जॉन हेलर

0

एक अन्य स्थिति जिसकी आवश्यकता 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;

दोनों व्यंजनों जोश जुनो और मैट एरिना की पुस्तक 'ओरेकल पीएल / एसक्यूएल व्यंजनों' से लिए गए हैं


0

DUAL सभी Oracle डेटाबेस में डिफ़ॉल्ट रूप से मौजूद एक पंक्ति, एक स्तंभ तालिका है। DUAL का मालिक SYS है।

DUAL डेटा कार्यों के साथ Oracle डेटाबेस द्वारा स्वचालित रूप से बनाई गई एक तालिका है। इसका उपयोग हमेशा ऑपरेटिंग सिस्टम फ़ंक्शन (जैसे दिनांक, समय, अंकगणितीय अभिव्यक्ति।), आदि के लिए किया जाता है।

SELECT SYSDATE from dual;  
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.