我听到有人提到过这张桌子,但不确定它是关于什么的。
当前回答
它是一种虚拟表,只有一条记录,用于在你实际上对数据不感兴趣时进行选择,而是希望在选择语句中获得一些系统函数的结果:
例如:select sysdate from dual;
参见http://www.adp-gmbh.ch/ora/misc/dual.html
从23c开始,Oracle支持选择sysdate /*或其他值*/,而不是from dual,因为MySQL已经支持了一段时间。
其他回答
DUAL表是一个特殊的单行表,默认存在于所有Oracle数据库安装中。它适合用于选择伪列,如SYSDATE或USER
该表有一个名为DUMMY的VARCHAR2(1)列,其值为“X”
你可以在http://en.wikipedia.org/wiki/DUAL_table上阅读所有相关信息
它是一个放入from返回1空行的对象。例如: Select 1 from dual; 返回1
从dual中选择21+44; 返回65
选择(序列)。Nextval from dual; 返回序列中的下一个值。
Oracle中只有1行1列的实用程序表。它被用来执行一些算术运算,通常可以用于需要生成已知输出的地方。
SELECT * FROM dual;
将给出一个单行,一个名为“DUMMY”的列和一个值“X”,如下所示:
假 ----- X
我认为维基百科的这篇文章可能有助于澄清。
http://en.wikipedia.org/wiki/DUAL_table
DUAL表是一个特殊的单行表 表默认存在于所有Oracle中 数据库安装。这是合适的 用于选择伪列 例如SYSDATE或USER表有 一个单独的VARCHAR2(1)列称为 值为“X”的DUMMY
它是一个包含一个元素的虚拟表。它很有用,因为Oracle不允许这样的语句
SELECT 3+4
您可以通过编写来绕过这个限制
SELECT 3+4 FROM DUAL
代替。
推荐文章
- Oracle中的双表是什么?
- Oracle中不区分大小写的搜索
- 如何在Oracle SQL开发者中导出查询结果到csv ?
- Oracle SQL Developer多表视图
- 如何在Oracle中做top 1 ?
- Oracle Partition By关键字
- 如何使用服务名而不是SID连接到Oracle
- 从多个表中选择count(*)
- 内部连接vs Where
- 我如何列出一个表中的所有列?
- 如何在不复制数据的情况下创建Oracle表的副本?
- Oracle中的varchar和varchar2有什么区别?
- 如何在Oracle中查找表中的重复值?
- Oracle SQL:用另一个表的数据更新一个表
- ORA-12514 TNS:监听器当前不知道连接描述符中请求的服务