Oracle中DUAL表的认识和使用

本文介绍了Oracle数据库中DUAL表的基本概念及其用途。通过示例说明如何利用DUAL表进行简单的数学运算,并展示了如何查询当前系统时间。此外还解释了DUAL表作为虚拟表的特点及限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在Oracle中要完成表达式的计算,必须要使用系统表DUAL。如:
select 1+1 
执行出错:
ERROR 位于第 1 行:
ORA-00923: 未找到预期 FROM 关键字
这表示查询表达式的结果,必须要使用FROM,而FROM后面跟的表,在Oracle中,通常就是DUAL表。

上面的代码改为:
select 1+1 from dual;
返回:
2

DUAL叫虚表,又叫哑表。这表示其中的内容并不是在数据库实际存在的,而是随表达式的不同而不是同的。可以“简单认为”DUAL表是一个保存返回结果的临时表,查询结束以后,这个表中的内容也就自动清空了。
select * from dual,返回什么?
D
-
X
这表示其中没有任何内容,也不要对DUAL这个虚表进行增删改,这样做没有实际意义,更不能DROP。强调,它是一个系统表。

使用DUAL比较常见的情况是查询当前的系统时间,如:
SQL> select to_char(sysdate,'yyyy.mm.dd') as x from dual;
返回:
X
----------
2010.03.15

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值