请帮忙说明一下dual表的属性 DUAL只是虚表,只是有个值就可以,你可以把X换成别的SYSDATE可以从任何非空表中选出 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dual表不是什么虚表,是一个实实在在的表,在sys用户下,该表只有一个字段,SQL> desc dual Name Null? Type ------------------------------- -------- ---- DUMMY VARCHAR2(1)该表只有一条记录:SQL> select * from dual;D-X这个表的作用是在使用select语法但是不需要从某个基表中读取数据的时候,保证语法的完整,如:SELECT SYSDATE FROM DUAL; 对,其实它是一个实际表,很多人以为它不存在。我曾经遇到过一次错误,这个表里出现了128条记录。结果所有用到dual表的数据都出错了。后来手工删除了这个表,然后重建就好了。其实没有那么神秘,大家当成一个只有一条记录的普通表就可以了。 含义解释: Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select中。使用方法: 查看当前连接用户SQL> select user from dual;USER------------------------------SYSTEM查看当前日期、时间SQL> select sysdate from dual;SYSDATE----------18-3月 -01SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;TO_CHAR(SYSDATE,'YY-------------------2001-03-18 22:37:56当作计算器用SQL> select 1+2 from dual; 1+2---------- 3查看序列值SQL> create sequence aaa increment by 1 start with 1;SQL> select aaa.nextval from dual;SQL> select aaa.nextval from dual; NEXTVAL---------- 1SQL> select aaa.currval from dual; CURRVAL---------- 1 为了保证select ... from 的完整性而做出来的其实如果你在系统离自己随便创建一个表,里面塞上一条记录,然后使用 select sysdate from 你的表出来的效果完全一样 作用是在使用select语法但是不需要从某个基表中读取数据的时候,保证语法的完整.或者计数器用,如果没有基表的时候,都可以用 同意:KingSunSha(弱水三千)的观点! 说得好! 问下,这句话应该怎么写啊? 在线等!!!!! exp导出数据时,为什么会有这样的记录? 人员登陆的权限设置 索引也需要建同义词吗? 创建表到指定的表空间,提示表空间不存在,问题解决立即给分!!! PL/sql developer 如何创建表空间 求sql语句写法 有没有这样的SQL语句 Oracle9建临时表不在Temp表空间中,而在CWMLITE中? SQLDeveloper启动后一直在“等待编辑器初始化” 触发器和序列的问题 如何在oracle9i的Enterprise Manager Console中建一个新的序列(sequence)?
SQL> desc dual
Name Null? Type
------------------------------- -------- ----
DUMMY VARCHAR2(1)
该表只有一条记录:
SQL> select * from dual;
D
-
X这个表的作用是在使用select语法但是不需要从某个基表中读取数据的时候,保证语法的完整,如:
SELECT SYSDATE FROM DUAL;
我曾经遇到过一次错误,这个表里出现了128条记录。
结果所有用到dual表的数据都出错了。
后来手工删除了这个表,然后重建就好了。
其实没有那么神秘,大家当成一个只有一条记录的普通表就可以了。
Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select中。使用方法:
查看当前连接用户
SQL> select user from dual;USER
------------------------------
SYSTEM
查看当前日期、时间
SQL> select sysdate from dual;SYSDATE
----------
18-3月 -01
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;TO_CHAR(SYSDATE,'YY
-------------------
2001-03-18 22:37:56
当作计算器用
SQL> select 1+2 from dual; 1+2
----------
3
查看序列值
SQL> create sequence aaa increment by 1 start with 1;
SQL> select aaa.nextval from dual;SQL> select aaa.nextval from dual; NEXTVAL
----------
1
SQL> select aaa.currval from dual; CURRVAL
----------
1
然后使用 select sysdate from 你的表
出来的效果完全一样
说得好!