1、查看当前用户,可以在SQL Plus或者PL/SQL中执行语句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表的操作,否则系统不能使用,数据库起不了,但是你还没绝望,下面的步骤可以帮你恢复该表。可以用Sys用户登录。
SQL>create pfile='d:pfile.bak' from spfile
SQL>shutdown immediate
在d:pfile.bak文件中最后加入一条:
重新启动数据库:
SQL>startup pfile='d:pfile.bak';
SQL>create table "sys"." dual"
[an error occurred while processing this directive]