سؤال

لقد سمعت أشخاصًا يشيرون إلى هذا الجدول ولم أكن متأكدًا من موضوعه.

هل كانت مفيدة؟

المحلول

إنه نوع من الجدول الوهمي مع سجل واحد يستخدم للاختيار عندما لا تكون مهتمًا فعليًا بالبيانات، ولكن بدلاً من ذلك تريد نتائج بعض وظائف النظام في عبارة تحديد:

على سبيل المثال select sysdate from dual;

يرى http://www.adp-gmbh.ch/ora/misc/dual.html

نصائح أخرى

إنها طاولة وهمية تحتوي على عنصر واحد.إنه مفيد لأن Oracle لا تسمح بعبارات مثل

 SELECT 3+4

يمكنك التغلب على هذا القيد عن طريق الكتابة

 SELECT 3+4 FROM DUAL

بدلاً من.

من ويكيبيديا

تاريخ

تم إنشاء الجدول DUAL بواسطة Chuck Weiss من شركة Oracle لتوفير جدول للانضمام إلى طرق العرض الداخلية:

لقد قمت بإنشاء جدول DUAL ككائن أساسي في قاموس بيانات Oracle.لم يكن من المفترض أن ينظر إلى نفسه ، ولكن بدلاً من ذلك يستخدم داخل وجهة نظر كان من المتوقع أن يتم الاستعلام عنها.كانت الفكرة أنه يمكنك الانضمام إلى الجدول المزدوج وإنشاء صفين في النتيجة لكل صف واحد في طاولتك.بعد ذلك ، باستخدام Group by ، يمكن تلخيص الوصلة الناتجة لإظهار مقدار التخزين لمدى البيانات ومدى الفهرس (S).بدا الاسم ، المزدوج ، مناسبًا لعملية إنشاء زوج من الصفوف من واحد فقط. 1

قد لا يكون الأمر واضحًا مما سبق، ولكن جدول DUAL الأصلي كان يحتوي على صفين (ومن هنا اسمه).في الوقت الحاضر لديها صف واحد فقط.

تحسين

كان DUAL في الأصل جدولًا وكان محرك قاعدة البيانات يقوم بإجراء إدخال/إخراج للقرص على الطاولة عند الاختيار من DUAL.كان إدخال/إدخال القرص هذا عادةً إدخالاً/إخراجًا منطقيًا (لا يتضمن الوصول إلى القرص الفعلي) حيث إن كتل القرص عادةً ما تكون مخزنة مؤقتًا في الذاكرة.أدى هذا إلى قدر كبير من عمليات الإدخال والإخراج المنطقية مقابل الجدول DUAL.

تم تحسين الإصدارات اللاحقة من قاعدة بيانات Oracle ولم تعد قاعدة البيانات تنفذ عملية إدخال/إخراج فعلية أو منطقية على الجدول DUAL على الرغم من أن الجدول DUAL لا يزال موجودًا بالفعل.

أعتقد أن مقالة ويكيبيديا هذه قد تساعد في التوضيح.

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

الجدول المزدوج هو جدول خاص من الدرج واحد موجود افتراضيًا في جميع عمليات تثبيت قاعدة بيانات Oracle.إنه مناسب للاستخدام في اختيار خلق كاذب مثل sysdate أو المستخدم ، يحتوي الجدول على عمود varchar2 (1) واحد يسمى Dummy له قيمة "x"

إنه الجدول الخاص في Oracle.غالبًا ما أستخدمه لإجراء العمليات الحسابية أو التحقق من متغيرات النظام.على سبيل المثال:

  • Select 2*4 from dual يطبع نتيجة الحساب
  • Select sysdate from dual يطبع التاريخ الحالي للخادم.

نوع من الجداول الزائفة التي يمكنك تشغيل الأوامر عليها واستعادة النتائج، مثل sysdate.يساعدك أيضًا على التحقق من تشغيل Oracle والتحقق من بناء جملة SQL، وما إلى ذلك.

جدول أدوات مساعدة في Oracle يحتوي على صف واحد وعمود واحد فقط.يتم استخدامه لإجراء عدد من العمليات الحسابية ويمكن استخدامه بشكل عام عندما يحتاج المرء إلى إنشاء مخرجات معروفة.

اختر * من الثنائي؛

سيعطي صفًا واحدًا، بعمود واحد يسمى "DUMMY" وقيمة "X" كما هو موضح هنا:

DUMMY
----- 
X

المزيد من الحقائق حول المزدوج ....

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

يعد DUAL ضروريًا في تطوير PL/SQL لاستخدام الوظائف المتوفرة فقط في SQL

على سبيل المثال

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

إنه كائن لوضعه في صف فارغ واحد من هذا الإرجاع.على سبيل المثال:اختر 1 من الثنائي؛يعود 1

اختر 21+44 من الثنائي؛يعود 65

حدد [التسلسل].nextval من الثنائي؛إرجاع القيمة التالية من التسلسل.

DUAL نستخدمه بشكل أساسي للحصول على الرقم التالي من التسلسلات.

بناء الجملة :حدد 'sequence_name'.NEXTVAL من DUAL

سيؤدي هذا إلى إرجاع قيمة عمود واحد لصف واحد (اسم العمود NEXTVAL).

حالة أخرى تتطلب select ... from dual يحدث عندما نريد استرداد التعليمات البرمجية (تعريف البيانات) لكائنات قاعدة بيانات مختلفة (مثل TABLE وFUNCTION وTRIGGER وPACKAGE)، وذلك باستخدام المدمج في DBMS_METADATA.GET_DDL وظيفة:

select DBMS_METADATA.GET_DDL('TABLE','<table_name>') from DUAL;

select DBMS_METADATA.GET_DDL('FUNCTION','<function_name>') from DUAL;

صحيح أن بيئات التطوير المتكاملة توفر في الوقت الحاضر إمكانية عرض DDL للجدول، ولكن في البيئات الأبسط مثل SQL Plus، يمكن أن يكون هذا مفيدًا حقًا.

يحرر

حالة أكثر عمومية:بشكل أساسي، عندما نحتاج إلى استخدام أي إجراء PL/SQL داخل عبارة SQL القياسية، أو عندما نريد استدعاء إجراء من سطر الأوامر:

select my_function(<input_params>) from dual;

كلتا الوصفتين مأخوذتان من كتاب "Oracle PL/SQL Recipes" بقلم جوش جونو ومات أرينا

DUAL عبارة عن جدول خاص بصف واحد وعمود واحد موجود افتراضيًا في جميع قواعد بيانات Oracle.مالك DUAL هو SYS.

DUAL هو جدول يتم إنشاؤه تلقائيًا بواسطة Oracle Database مع وظائف البيانات.يتم استخدامه دائمًا للحصول على وظائف أنظمة التشغيل (مثل التاريخ والوقت والتعبير الحسابي وما إلى ذلك)

SELECT SYSDATE from dual;  
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top