当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle认证综合辅导:数据表dual表的用途
发布时间:2012/9/16 22:14:20 来源:城市网学院 编辑:admin
   dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。
    我们可以用它来做很多事情,如下:
    1、查看当前用户,可以在 SQL Plus中执行下面语句 select user from dual;
    2、用来调用系统函数
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss‘) from dual;--获得当前系统时间
    select SYS_CONTEXT('USERENV','TERMINAL’) from dual;--获得主机名
    select SYS_CONTEXT(‘USERENV','language’) from dual;--获得当前      locale
    select dbms_random.random from dual;--获得一个随机数
    3、得到序列的下一个值或当前值,用下面语句
    select your_sequence.nextval from dual;--获得序列your_sequence的下一个值
    select your_sequence.currval from dual;--获得序列your_sequence的当前值
    4、可以用做计算器 select 7*9 from dual;
    ------
    Oracle系统中dual表是一个“神秘”的表,网上有很多网友都对该表进行了测试,该表只有一行一列,其实该表和系统中的其他表一样,一样可以执行插入、更新、删除操作,还可以执行drop操作。但是不要去执行drop表的操作,否则会使系统不能用,数据库起不了,会报Database startup crashes with ORA-1092错误。此时也不要慌乱,可以通过执行以下步骤来进行恢复。可以用sys用户登陆。
    SQL> create pfile='d:pfile.bak' from spfile
    SQL> shutdown immediate
    在d:pfile.bak文件中最后加入一条:
    replication_dependency_tracking = FALSE
    重新启动数据库:
    SQL> startup pfile='d:pfile.bak'
    SQL> create table “sys”。“DUAL”
    [an error occurred while processing this directive]
    =====
    DUAL ? 有什么神秘的? 当你想得到ORACLE系统时间, 简简单单敲一行SQL 不就得了吗? 故弄玄虚…
    SQL> select sysdate from dual;
    SYSDATE
    ---------
    28-SEP-03
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved