SQL> connect sys as sysdba   Connected. 
  SQL> insert into dual values ( 'Y');      1 row created.   SQL> commit;      Commit complete.   SQL> select count(*) from dual;      COUNT(*)      ----------      2 
我在论坛上看到上面的这一段代码,上面红色部分就是我疑惑的地方,
我在自己机器上明明得到count(*)为1,
问题:
1:是我错了还是那个红色的地方错了?
2:dual除了select 'aaa',to_date('1990-01-01','yyyy-mm-dd) from dual;之外到底还有什么用常?

解决方案 »

  1.   

    2:dual除了类似select 'aaa',to_date('1990-01-01','yyyy-mm-dd) from dual;这样的sql之外到底还有什么用常? 
      

  2.   

    还可以取序更的值,如:
    select s_seq.nextval into v_seq from dual;其他的自已摸索吧
      

  3.   

    就是个虚表,就为了派FROM的用途的
      

  4.   


    Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中。
    DUAL是个一行一列的表,DUAL表可以执行插入、更新、删除操作,还可以执行drop操作。但是不要去执行drop表的操作,否则会使系统不能用,数据库起不了,会报Database startup crashes with ORA-1092错误。Oracle Dual 表详解 
    http://blog.csdn.net/tianlesoftware/archive/2009/11/03/4764326.aspx
      

  5.   

    1、DUAL表的用途
    Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中
    --查看当前连接用户
    SQL> select user from dual;
    USER
    ------------------------------
    SYSTEM
    --查看当前日期、时间
    SQL> select sysdate from dual;
    SYSDATE
    -----------
    2007-1-24 1
    SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
    TO_CHAR(SYSDATE,'YYYY-MM-DDHH2
    ------------------------------
    2007-01-24 15:02:47
    --当作计算器用
    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;
              NEXTVAL
    ----------
             1
    SQL> select aaa.currval from dual;
       CURRVAL
    ----------
             12、关于DUAL表的测试与分析
    DUAL就是个一行一列的表,如果你往里执行insert、delete、truncate操作,就会导致很多程序出问题。结果也因sql*plus、pl/sql dev等工具而异。
    --查看DUAL是什么OBJECT
    --DUAL是属于SYS schema的一个表,然后以PUBLIC SYNONYM的方式供其他数据库USER使用.
    SQL> select owner, object_name , object_type from dba_objects where object_name like '%DUAL%';
    OWNER      OBJECT_NAME       OBJECT_TYPE
    ---------- ----------------- ------------------
    SYS        DUAL              TABLE
    PUBLIC     DUAL              SYNONYM--查看表结构,只有一个字段DUMMY,为VARCHAR2(1)型
    SQL> desc dual
    Name Type        Nullable Default Comments
    ----- ----------- -------- ------- --------
    DUMMY VARCHAR2(1) Y--DUAL表的结构:
    create table SYS.DUAL
    (
    DUMMY VARCHAR2(1)
    )
    tablespace SYSTEM
    pctfree 10
    pctused 40
    initrans 1
    maxtrans 255
    storage
    (
        initial 16K
        next 16K
        minextents 1
        maxextents 505
        pctincrease 50
    );
      

  6.   

    dual 表是为了满足sql查询语句的结构而设计的。