我听到有人提到过这张桌子,但不确定它是关于什么的。


当前回答

它是一个包含一个元素的虚拟表。它很有用,因为Oracle不允许这样的语句

 SELECT 3+4

您可以通过编写来绕过这个限制

 SELECT 3+4 FROM DUAL

代替。

其他回答

DUAL表是一个特殊的单行表,默认存在于所有Oracle数据库安装中。它适合用于选择伪列,如SYSDATE或USER

该表有一个名为DUMMY的VARCHAR2(1)列,其值为“X”

你可以在http://en.wikipedia.org/wiki/DUAL_table上阅读所有相关信息

它是Oracle中的特殊表。我经常用它来计算或检查系统变量。例如:

从对偶中选择2*4打印出计算结果 从双打印服务器当前日期中选择sysdate。

DUAL是PL/SQL开发中使用仅在SQL中可用的函数所必需的

e.g.

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

它是一种虚拟表,只有一条记录,用于在你实际上对数据不感兴趣时进行选择,而是希望在选择语句中获得一些系统函数的结果:

例如:select sysdate from dual;

参见http://www.adp-gmbh.ch/ora/misc/dual.html

从23c开始,Oracle支持选择sysdate /*或其他值*/,而不是from dual,因为MySQL已经支持了一段时间。

关于DUAL的更多事实....

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1562813956388

这里做的令人激动的实验,还有汤姆更令人激动的解释