什么是 DUAL 表
DUAL
表是 Oracle 数据库随着数据字典自动创建的特殊表。DUAL
表位于用户 SYS
的模式中,但是所有用户都可以通过 DUAL
名字来访问它。该表只有一个名为 DUMMY
并且类型为 VARCHAR2(1)
列,且只有一条值为 X
的数据。
SELECT *
FROM dual;
"DUMMY"
-------------
X
用途
因为在 Oracle 中,SELECT
语句必须要有 FROM
子句,所以在某些只需要计算表达式或调用内置函数的情况下,我们需要借助 DUAL
表来保证语法的正确性。
示例
通过 SELECT
计算表达式值:
SELECT 1+1
FROM dual;
"1+1"
--------
2
通过 SELECT
查询当前的系统时间:
SELECT SYSDATE
FROM dual;
"SYSDATE"
----------------------
2019-07-10 15:59:35
通过 SELECT
查询当前 Oracle 会话中的 user_id:
SELECT USER
FROM dual;
"USER"
--------
TEST