技术开发 频道

Oracle中神秘的DUAL表的探究

    【IT168 技术文档】

    DUAL ? 有什么神秘的? 当你想得到ORACLE系统时间, 简简单单敲一行SQL 不就得了吗? 故弄玄虚….

SQL>; select sysdate from dual; SYSDATE --------- 28-SEP-03
    确实DUAL的使用很方便. 但是大家知道DUAL倒底是什么OBJECT, 它有什么特殊的行为吗? 来,我们一起看一看.

    首先搞清楚DUAL是什么OBJECT :

SQL>; connect system/manager Connected. 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

    原来DUAL是属于SYS schema的一个表,然后以PUBLIC SYNONYM的方式供其他数据库USER使用.

    再看看它的结构:

SQL>; desc dual Name Null? Type --------------------------------- DUMMY VARCHAR2(1)

    只有一个名字叫DUMMY的字符型COLUMN .

    然后查询一下表里的数据:

SQL>; select dummy from dual; DUMMY ---------- X
0
相关文章