`
freeskywcy
  • 浏览: 216517 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Oracle中dual的意思

 
阅读更多

这是个虚拟表,在操作大多数Oracle对象的时候都可以使用这个表,比如sequence,sysdate等等。
比如select sysdate from dual
select seq1.nextval from dual
等等,一般也就是用来做这个事情的

dual之所以叫虚拟表,因为它里面并没有什么有效的内容!我的理解是:因为SQL语句的基本结构是Select   ...   From   ...   ,From作为SQL语句的毕加项是不可以省略的。而通过SQL语句取得数据库的一些对象值(如:序列,系统日期等等),From就必不可少,所以就出现了Dual这个表。

例如:select   f   from   dual   中的f
可以是任何合法的表达式,用于得到某些特殊功能,但该表达式中不能包含属于某个表(或视图)中的字段或多个字段。例如日期函数,算术表达式、自定义函数、序列等等。
select   trunc(sysdate),round(3.232,2)   from   dual;
select   42*2+2   from   dual;
select   seq.nextval   from   dual;
select   1   from   dual   where   ...
该虚表中永远都只有一条记录。

1. dual 是由 sql.bsq 建立的。每个database 在建立的时候, sql.bsq 都需要run 一次的。所以每个database 都会有dual table 的。

2. DUAL 的owner 是谁?  -- SYS
  (select owner, table_name from dba_tables where table_name='DUAL'

3.  什么时候经常用到dual table?

我自己最常用的是,在batch script 做 time stamps.
connect internal;
select to_char(sysdatE, 'YY-MON-DD HH:MI') FROM DUAL;
................

至 于运算或者看sequence 的value 使用得却是不多。可能做开发的人员用的比较多。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

关 于dual 引起的Performance 的问题。

如果没有用很多dual的话,似乎不用考虑的。我尚未见过一天需要 access 千次以上dual 的数据库。但是根据文章,给dual 建立index 是个好办法(8i 及以前),并且要常做 analy table dual comput statistics。

或者将X$DUAL 使用where 来建立一个view,可以使其存在memory 里面,如果常使用的话,就会降低performance cost。

分享到:
评论

相关推荐

    oracle之dual表的一些

    oracle之dual表的一些 oracle之dual表的一些 oracle之dual表的一些

    详解Oracle数据库中DUAL表的使用

    Oracle 数据库中 DUAL 表的使用 DUAL 表是 Oracle 数据库中一个特殊的表,它是任何用户都可以读取的公共表。DUAL 表的用途非常广泛,常用在没有目标表的 Select 语句块中。下面都是 DUAL 表的一些常见使用场景: ...

    Oracle中的dual

    dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录

    oracle_dual详解.doc

    oracle_dual详解 oracle_dual详解

    oracle_dual详解

    oracle数据库中的dual续表详细解读,适合数据库中级水平者学习。

    oracle 不存在dual情况下注入.doc

    oracle 不存在dual情况下注入.doc

    oracle数据库中有关dual的资料总结

    oracle、数据库、dual 有关oracle的一点小知识点

    Oracle dual详解

    针对oracle中dual表的说明和一下实例。

    BLOG_Oracle_lhr_DUAL系列

    BLOG_Oracle_lhr_DUAL系列BLOG_Oracle_lhr_DUAL系列BLOG_Oracle_lhr_DUAL系列BLOG_Oracle_lhr_DUAL系列

    Oracle_Sql_中常用字符串处理函数

    Oracle Sql 中提供了多种字符串处理函数,用于对字符串进行各种操作,如大小写转换、截取、连接、查找、替换等。下面是 Oracle Sql 中常用的字符串处理函数: 1. 大小写转换函数 Oracle Sql 提供了两个大小写转换...

    oracle中日期类型与unix 时间戳的转换

    oracle中日期类型与unix 时间戳的转换, Unix时间戳记是从'1970-01-01 00:00:00'GMT开始的秒数,表现为整数型。...SELECT oracle_to_unix(SYSDATE),unix_to_oracle(1551774286),oracle_to_unix(SYSDATE) FROM dual;

    ORACLE中的sys_context函数

    Oracle 中的 sys_context 函数 sys_context 函数是 Oracle 提供的一个获取环境上下文信息的预定义函数。该函数用来返回一个指定 namespace 下的 parameter 值。该函数可以在 SQL 和 PL/SQL 语言中使用。 sys_...

    Oracle查找字符串中某字符出现的次数

    select f_find('Ap@2233ll@@l@@','@') from dual 返回结果为5,代表‘@’在该字符串中出现5次。 同理 select f_find('Ap@223SWEQQQ3ll@@l@@','Q') from dual---返回3,代表Q在字符串中出现了3次, select f_find('我...

    Oracle客户端连接Oracle服务器.docx

    dual是名义表,不存任何东西. Oracle客户端连接Oracle服务 全文共9页,当前为第4页。 Oracle客户端连接Oracle服务 全文共9页,当前为第4页。 Oracle远程连接数据库总结 Oracle代码 : orCL = (DESCRIPTION = ...

    10.Oracle虚表1

    1、dual虚表的结构2、查询dual虚表中的记录3、对dual虚表做增、删、改操作普通用户对dual虚表只有查询权限,没有增、删、改的权限 1、执行Oracl

    Oracle数据库学习指南

    40.在oracle中限制返回结果集的大小 41.在远端如何建立standby数据库 42.怎样分析你的SQL语句的效率 43.自动备份Oracle数据库 44.总结SQL语句中的优化提示 45.使用Database Configuration Assistant安装...

    Oracle时间日期操作

    Oracle 时间日期操作是 Oracle 数据库中常用的操作,包括对日期和时间的各种计算和处理。下面是 Oracle 时间日期操作的相关知识点: 1. 日期和时间的基本操作 Oracle 中的日期和时间可以使用 sysdate 函数来获取...

    Oracle中trunc()函数用法处理日期、数字类型数据

    Oracle 中的 TRUNC 函数用法处理日期、数字类型数据 TRUNC 函数是 Oracle 中的一个重要函数,它可以用来截断日期和数字类型的数据。下面我们将详细介绍 TRUNC 函数的用法和特点。 一、日期 TRUNC 函数 TRUNC 函数...

    21天学通Oracle

    第一篇 Oracle管理配置 第1章 Oracle安装配置(教学视频:10分钟) 23 1.1 Oracle简介 23 1.1.1 数据库术语 23 1.1.2 主流数据库简介 24 ...第23章 Oracle在C#开发中的应用(教学视频:12分钟) 391

Global site tag (gtag.js) - Google Analytics