DUAL是oracle中非常神奇的一张表,有好多人用了很久oracle都不知道dual是干什么的,因为不是自己设计的表,一般处理的SQL也用不到。这里简单说下DUAL的用法,知道之后很多情况下DUAL查询还是很方便的。

一、DUAL简介:

1. DUAL是一个单行单列的虚拟表,是sys用户下的一张内部表,所有用户都可以使用DUAL名称访问,无论什么时候这个表总是存在

2. 常用在没有目标表的select语句块,用来构成select的语法规则

3. DUAL里面永远只有一条记录

4. DUAL表主要用来选择系统变量或求一个表达式的值

5. DUAL就是个一行一列的表,如果你往里执行insert、delete、truncate、drop等操作会导致很多程序出问题,可以执行,但是执行后会引发很多问题。

二、DUAL常见用法:

DESC DUAL;--查看DUAL表结构

SELECT sysdate FROM DUAL;--获取当前系统日期

SELECT user FROM DUAL;--获取当前用户

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 to_char(sysdate,'IW') FROM DUAL;--获取当前日期,按照IW算法查看当前是第几周,一般用于创建表分区时查看当前周时间

注:参数中使用IW算法查询周数。IW算法为自然周,星期一到星期日为一周。且每年的第一个星期天为第一周,这样会把去年的最后几天当成今年的第一周日期。

另外还有WW算法。WW的算法为每年1月1日为第一周开始日,每一周开始日+6为一周结尾日。例如20210101为第一周的第一天,而第一周的最后一天为20210101+6=20210107。一般公司开发中多采用IW算法取周数。

3、to_char函数、to_number 函数、to_date 函数:

oracle中to_char函数的功能是将数值型或者日期型转化为字符型

to_number 字符转换为数字

to_date 字符转换为日期

4、to_char()函数常见使用:

select pack_id,to_char(crtdatetime,'MM/YY')  from pckinfo where sender = 'AICP2AMTP'
2052062070012 05/21

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss am')  from dual
2021-05-04 17:21:21 下午

select to_char(to_date('20-3月-21'),'yyyy-mm-dd hh24:mi:ss am')  from dual
2021-03-20 00:00:00 上午

select to_char(sysdate,'dd "of" month') from dual
04 of 5月

select to_char(syadate,'yyyy-mm-dd cc') from dual
2021-05-04 21
注:cc是世纪,如当前是21世纪。

select to_char(sysdate,'yy-mm-dd cc')  from dual
21-05-04 21

select to_char(sysdate,'y,yyy-mm-dd cc') from dual
2,021-05-04 21

Oracle数据库中神奇的dual表相关推荐

  1. oracle系统试算平衡表,oracle数据库中常用的系统表

    dba_开头..... dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespace ...

  2. oracle语句mysql数据库名称_查询oracle数据库中当前数据库所有表的名称

    SQL查询数据库中所有指定类型的字段名称和所在的表名 --查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 ...

  3. oracle数据库中的虚拟表,Oracle10g中的虚拟专用数据库(VPD)

    什么是VPD 所谓虚拟专用数据库(VPD)指的是,通过在数据库里进行配置,从而让不同的用户只能查看某个表里的部分数据.VPD分为以下两个级别: 行级别:在该级别下,可以控制某些用户只能查看到某些行数据 ...

  4. 如何从Oracle数据库中的表中获取列名(字段名)列表?

    如何从Oracle数据库中的表中获取列名(字段名)列表? 目录 如何从Oracle数据库中的表中获取列名(字段名)列表? #示例一 #示例二 示例三: #示例一 可以获取: table_name:表名 ...

  5. Oracle表里的照片怎么导出来,如何导出oracle数据库中某张表到excel_oracle数据库表格导出到excel...

    如何将oracle数据库表字段导成excel表格 这个你只要用ADO连oracle并获取记录集,根据你用的编程语言打开EXCEL,然后操作EXCEL对象的工作表就可以了.以VB为例: 1.在工程中引用 ...

  6. 如何将oracle数据库中的表结构导入到sqlserver中,Oracle转换成SqlServer数据库的步骤...

    1 背景 ITM系统目前支持MysqL.Oracle数据库,由于现在需要和CA产品进行结合,用CA产品的采集功能进行数据采集,因此需要使用CA产品的sqlServer数据库,为了使得系统支持sqlse ...

  7. JDBC查询Oracle全部表名称,如何使用JDBC API从Oracle数据库中的现有表中检索记录?...

    您可以使用UPDATE查询来更新/修改表中记录的现有内容.使用此功能,您可以更新表的所有记录或特定记录. 语法UPDATE table_name SET column1 = value1, colum ...

  8. oracle表重命名 索引,CSS_在Oracle数据库中按用户名重建索引的方法,如果你管理的Oracle数据库下某 - phpStudy...

    在Oracle数据库中按用户名重建索引的方法 如果你管理的Oracle数据库下某些应用项目有大量的修改删除操作, 数据索引是需要周期性的重建的. 它不仅可以提高查询性能, 还能增加索引表空间空闲空间大 ...

  9. jdbc oracle 删除数据库连接,如何使用JDBC API从Oracle数据库中删除表?

    您可以使用INSERT查询将记录插入表中. 语法INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1 ...

最新文章

  1. [原]Java 正则 多子串 匹配 替换
  2. Containers vs Serverless
  3. struts2 文件上传与下载 (初始文件上传的底层技术)——struts2第七讲
  4. Mat转CImage
  5. wxWidgets:命令行参数
  6. PWM 发生器模块设计
  7. Memory-Associated Differential Learning论文及代码解读
  8. SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
  9. CodeForces 8D Two Friends 判断三个圆相交
  10. MFC开发IM-字符串转换大全
  11. Odoo10参考系列--Mobile JavaScript
  12. python壁纸数据抓取_python 多线程爬取壁纸网站的示例
  13. JavaScript 从入门到放弃(二)模块化工具requirejs
  14. html 控制边框长度,如何控制CSS边框长度的示例代码分享
  15. 基于Python-Pygame:200行代码实现完整的俄罗斯方块
  16. 二、VS插件之VassistX
  17. 小程序怎么判断是在PC端打开的还是手机端打开的?
  18. MS SQL2000个人版安装教程(图文教程)
  19. 剑指21.调整数组顺序使奇数位于偶数前面 python leetcode
  20. 上海跳槽后 如何进行公积金转移?

热门文章

  1. Python通过微信远程控制电脑 - python itchat
  2. 阿里旺旺自动回复工具开发一
  3. 【附章4包装类】包装类的顶级理解
  4. socket本地通信
  5. 企业 SDLC 安全生命周期管理
  6. 多项式定理【OI Pharos 6.2.2】
  7. 一名普通医护人员的抗疫日志
  8. ffmpeg 实现 视频与gif互转
  9. 用Java写一个监视者模式
  10. [回归初作]——edge浏览器的小游戏