我听到有人提到过这张桌子,但不确定它是关于什么的。
当前回答
DUAL主要用于从序列中获取下一个数字。
语法:SELECT 'sequence_name'。Nextval from dual
这将返回一行一列的值(NEXTVAL列名)。
其他回答
它是Oracle中的特殊表。我经常用它来计算或检查系统变量。例如:
从对偶中选择2*4打印出计算结果 从双打印服务器当前日期中选择sysdate。
它是一种虚拟表,只有一条记录,用于在你实际上对数据不感兴趣时进行选择,而是希望在选择语句中获得一些系统函数的结果:
例如:select sysdate from dual;
参见http://www.adp-gmbh.ch/ora/misc/dual.html
从23c开始,Oracle支持选择sysdate /*或其他值*/,而不是from dual,因为MySQL已经支持了一段时间。
DUAL是PL/SQL开发中使用仅在SQL中可用的函数所必需的
e.g.
DECLARE
x XMLTYPE;
BEGIN
SELECT xmlelement("hhh", 'stuff')
INTO x
FROM dual;
END;
关于DUAL的更多事实....
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1562813956388
这里做的令人激动的实验,还有汤姆更令人激动的解释
Oracle中只有1行1列的实用程序表。它被用来执行一些算术运算,通常可以用于需要生成已知输出的地方。
SELECT * FROM dual;
将给出一个单行,一个名为“DUMMY”的列和一个值“X”,如下所示:
假 ----- X
推荐文章
- SQL在Oracle中连接多行列值的查询
- GROUP BY with MAX(DATE)
- 如何从Oracle的表中获取列名?
- 数据库性能调优有哪些资源?
- Oracle中表名的最大长度是多少?
- oracle中的RANK()和DENSE_RANK()函数有什么区别?
- 什么时候我需要在Oracle SQL中使用分号vs斜杠?
- 如何在Oracle SQL开发人员中找到引用给定表的表?
- 如何在Oracle SQL开发人员中设置自定义日期时间格式?
- 为什么Oracle 9i将空字符串视为NULL?
- NVL和Coalesce之间的Oracle差异
- 不可重复读和幻影读的区别是什么?
- ORA-00054:资源繁忙,指定NOWAIT或超时获取
- Oracle中的双表是什么?
- Oracle中不区分大小写的搜索