首发微信公众号:SQL数据库运维

原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1&sn=450e9e94fa709b5eeff0de371c62072b&chksm=ea37536cdd40da7a94e165ce4b4c6e70fb1360d51bed4b3566eee438b587fa231315d0a5a5b3&token=1491694448&lang=zh_CN#rd

这几天一直在研究Oracle,常常会用到Dual这个系统表,Dual表到底是一个什么表?带着疑问baidu了一下:

Dual表是Oracle提供的最小的工作表(其实是一种虚拟表),是sys用户下的一张内部表,只有一行一列(一列:DUMMY,一列:DUMMY,其数据类型为:VARCHAR2(1))。所有用户都可以使用Dual名称访问,无论什么时候这个表总是存在。不论进行何种操作(不要删除记录),它都只有一条记录——'X'。

select * from dual;

我们来查一下它的表结构,PL/SQL Developer【命令窗口】输入desc dual;

或者sys用户下【SQL窗口】执行以下语句

SELECT DBMS_METADATA.GET_DDL('TABLE','DUAL') FROM DUAL;

那么Dual在实际应用过程中可以做些什么呢?

  • Dual表主要用来选择系统变量或求一个表达式的值,最常见的一个简单例子,执行一个查看当前日期的语句,这条语句放在任何一个Oracle数据库当中都不会报错,所以一般做一些特定查询的时候用这个表是最稳妥的。

    select sysdate from dual;
    --或日期转换获得当前系统时间,‘分钟’ 要用mi;hh24表示24小时制,hh表示12小时制。
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

  • 当计算器使用
    select 1024*1024 from dual;

  • 查询当前连接用户

    select user from dual;

  • 查看序列值

    --创建序列aaa 以1开始,每次加1
    create sequence aaa increment by 1 start with 1;
    --获得序列aaa 的下一个序列值,每次查询加1
    select aaa.nextval from dual;
    --获得序列aaa 的当前序列值
    select aaa.currval from dual;

  • 获得一个随机数

    select DBMS_RANDOM.random from dual;

    Dual到底是什么object?

    select owner, object_name , object_type from dba_objects where object_name like '%DUAL%';

    经过查询输出的结果可以看到Dual是属于sys的一个表,然后以PUBLIC SYNONYM的方式供其他用户使用。

了解Oracle中的Dual系统表的更多相关文章

  1. Oracle中常用的系统表

    1.dba开头的表 dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces ...

  2. oracle中的dual表详解

    oracle中的dual表详解 1.DUAL表的用途 Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中 --查看当前连接用户 SQL> s ...

  3. oracle中查询当前系统时间用到的dual是什么?

    oracle我们查询当前系统时间的时候,经常用到dual,这个是什么东西呢? -- 查询系统时间 结果:2018/04/17 15:00:48 -- select sysdate from dual; ...

  4. 如何恢复oracle中已删除的表

    在9i中Oracle引入了flashback的概念,可以将数据返回到某个时间点,但对于诸如drop/truncate等DDL语句却尚不支持.进入Oracle10g,这一缺陷得到了弥补.可以将丢失掉的表 ...

  5. oracle/ms sql 系统表

    sql server系统表详细说明 sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures主数据库 配置选项 syscurco ...

  6. Oracle中如何查询一个表的所有字段名和数据类型

    Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_ ...

  7. Oracle中把一张表查询结果插入到另一张表中

      1. 新增一个表,通过另一个表的结构和数据 create table XTHAME.tab1 as select * from DSKNOW.COMBDVERSION 2. 如果表存在: inse ...

  8. oracle中,约束、表名、Index等的名称长度限制最大只能30个字符

    oracle中,约束.表名.Index等的名称长度限制最大只能30个字符

  9. 查看Oracle中是否有锁表

    转: 查看Oracle中是否有锁表 2018-04-23 17:59 alapha 阅读(19450) 评论(0) 编辑 收藏 一.用dba用户登录,或者将用户赋权为DBA用户 命令: su - or ...

  10. Oracle中查看所有的表,用户表,列名,主键,外键

    在Oracle中查看所有的表: select * from tab/dba_tables/dba_objects/cat; 看用户建立的表 : select table_name from user_ ...

随机推荐

  1. 插入排序【Java]

    1 package class01; 2 3 import java.util.Arrays; 4 5 public class Code03_InsertionSort { 6 7 public s ...

  2. #模型转换#[ARC126C] Maximize GCD

    题目 有 \(n\) 个数,最多 \(k\) 次让所选择的数加一,求 \(n\) 个数的GCD的最大值 \(n,a_i\leq 3*10^5,k\leq 10^{18}\) 分析 设答案为 \(d\) ...

  3. #树状数组#洛谷 4113 [HEOI2012]采花

    题目 分析 与HH的项链类似 离线处理询问,按右端点排序,维护最近的颜色和第二近的颜色,修改以第二近的颜色为准 换句话说,若最近颜色的位置为\(pos2\),第二近颜色的位置为\(pos1\) 加入一 ...

  4. FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx

    ​MP4是最常见的视频封装格式,在<FFmpeg开发实战:从零基础到短视频上线>一书的"1.2.3  自行编译与安装FFmpeg"介绍了如何给FFmpeg集成x264和 ...

  5. 本周二晚19:00战码先锋第8期直播丨如何多方位参与OpenHarmony开源贡献

    OpenAtom OpenHarmony(以下简称"OpenHarmony")工作委员会首度发起「OpenHarmony开源贡献者计划」,旨在鼓励开发者参与OpenHarmony开 ...

  6. Docker学习路线11:Docker命令行

    Docker CLI (命令行界面) 是一个强大的工具,可让您与 Docker 容器.映像.卷和网络进行交互和管理.它为用户提供了广泛的命令,用于在其开发和生产工作流中创建.运行和管理 Docker ...

  7. 深入了解 Golang 条件语句:if、else、else if 和嵌套 if 的实用示例

    条件语句 用于根据不同的条件执行不同的操作.Go中的条件可以是真或假.Go支持数学中常见的比较运算符: 小于 < 小于等于 <= 大于 > 大于等于 >= 等于 == 不等于 ...

  8. Linux程序崩溃自启动方法

    linux进程挂掉后,可以通过配置 systemd 来自动启动服务 1.创建 systemd 服务文件,例如:huyang.service,需要放置在系统文件夹 /etc/systemd/system ...

  9. DevEco Studio新特性分享-跨语言调试,让调试更便捷高效

     原文:https://mp.weixin.qq.com/s/JKVLQXu1z1zAoF5q49YEGg,点击链接查看更多技术内容.   HUAWEI DevEco Studio是开发Harmony ...

  10. 2款Notepad++平替工具(实用、跨平台的文本编辑器)

    前言 今天大姚给大家分享2款Notepad++平替工具,实用.跨平台(支持Window/MacOS/Linux操作系统平台)的文本编辑器. NotepadNext NotepadNext是一个跨平台的 ...