oracle如何查账号权限dual在oracle中是什么

dual在oracle中是什么

 

问题:dual是什么?

回答: &nbsoracle账号p;www.2cto.com  

dual是一个系统表,不能删除或者修改其表结构。它的名称叫做“伪表”或者“哑表”。

查看其表结构:

SQL> desc dual

名称        是否为空? 类型

———– ——– ———–

DUMMY                VARCHAR2(1)

其字段只有一个“dummy”,中文叫做“哑巴”。长度只有1。这个表结构只供参考。

问题:dual的作用是什么,如何使用?

在Oracle中,使用dual的主要原因是为了计算表达式的值。如计算:99*99。

对dual表的操作只能是查询,其它如增删改或者修改表结构,都没有实际应用价值,不用研究。何况有可能会导致Oracle不使用。

如:  www.2cto.com  

select 99*99 from dual;

返回: 9801

也可以一次性计算多个表达式的值:

执行:

select 9*9,1+1,1/null from dual;

返回:

9*9        1+1     1/NULL

— ———- ———-

81          2

注意,“1/null”的结果为null。因为在数据库中,任何值与null进行运算,其结果为null。

还有一个最常见的用途就是查询当前系统日期,对应函数是:sysdate,即“system date”。

代码:

select sysdate from dual;

返回:

SYSDATE

———-

22-11月-10

为了更容易看懂,可以用to_char函数指定显式的格式。

select to_char(sysdate,'yyyy.mm.dd') as 当前日期 from dual;

返回:

当前日期

———-

2010.11.22

执行:

select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') as 当前时间 from dual;

返回:

当前时间

——————-

2010.11.22 11:28:44

另外,在学习序列以后,就可以知道,查询序列的下一个值和当前值,通常也会用到dual表。

小结:

·dual表主要用于计算表达式。

·表结构只供参数,实际返回的列数与表达式的个数有关

·dual表只有可能返回一行,不可能返回多行。因为dual表并不是从表中取数据。

 

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。