What is the dual table in Oracle?我听说有人提到这张桌子,但不确定它是关于什么的。 这是一种具有单个记录的虚拟表,用于在您实际上不对数据感兴趣时选择,而是在select语句中希望某些系统函数的结果:
例如 参见http://www.adp-gmbh.ch/ora/misc/dual.html 它是一个虚拟表,其中包含一个元素。这很有用,因为Oracle不允许使用以下语句
您可以通过以下方式解决此限制:
代替。 来自维基百科 历史 DUAL表是由Oracle公司的Chuck Weiss创建的,用于提供用于内部视图联接的表:
从上面可能看不出来,但是原始DUAL表中有两行(因此得名)。如今,它只有一行。 优化 DUAL最初是一个表,并且从DUAL中进行选择时,数据库引擎将在表上执行磁盘IO。由于磁盘块通常已经缓存在内存中,因此该磁盘IO通常是逻辑IO(不涉及物理磁盘访问)。这导致针对DUAL表的大量逻辑IO。 Oracle数据库的更高版本已经过优化,即使DUAL表实际上仍然存在,该数据库也不再在DUAL表上执行物理或逻辑IO。 我认为这篇维基百科文章可能有助于澄清。 http://en.wikipedia.org/wiki/DUAL_table
这是Oracle中的特殊表。我经常将其用于计算或检查系统变量。例如:
Oracle中的实用程序表,只有1行和1列。它用于执行许多算术运算,通常可用于需要生成已知输出的地方。 SELECT * FROM dual; 将给出单行,并带有一个名为" DUMMY"的列和一个值为" X"的值,如下所示:
您可以针对某种伪表运行命令并获取结果,例如sysdate。还可以帮助您检查Oracle是否启动并检查sql语法等。 有关DUAL的更多事实... http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::::P11_QUESTION_ID:1562813956388 此处完成了激动人心的实验,汤姆也做了更多激动人心的解释 DUAL表是一种特殊的单行表,默认情况下在所有Oracle数据库安装中都存在。它适用于选择伪列,例如SYSDATE或USER 该表具有一个名为DUMMY的VARCHAR2(1)列,其值是" X" 您可以在http://en.wikipedia.org/wiki/DUAL_table中阅读全部内容 使用仅在SQL中可用的功能,在PL / SQL开发中必须使用DUAL 例如
DUAL是一种特殊的一行,一列表默认情况下出现在所有Oracle数据库中。 DUAL的所有者是SYS。 DUAL是由Oracle数据库自动创建的表以及数据功能。 它总是用于获取操作系统功能(例如日期,时间,算术表达式等)。
另一个需要
确实,当今的IDE确实提供了查看表的DDL的功能,但是在像SQL Plus这样的简单环境中,这确实很方便。 编辑 更普遍的情况:基本上,当我们需要在标准SQL语句中使用任何PL / SQL过程时,或者当我们想从命令行调用过程时:
两种食谱均摘自Josh Juneau和Matt Arena的书《 Oracle PL / SQL食谱》 DUAL我们主要用于从序列中获取下一个数字。 语法:SELECT'sequence_name'.NEXTVAL FROM DUAL 这将返回一行一列的值(NEXTVAL列名)。
从返回1空行中放入的对象。例如:
从双选中选择21 + 44;
从对偶中选择[sequence] .nextval; |