Oracle数据库中神奇的dual表
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表相关推荐
- oracle系统试算平衡表,oracle数据库中常用的系统表
dba_开头..... dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespace ...
- oracle语句mysql数据库名称_查询oracle数据库中当前数据库所有表的名称
SQL查询数据库中所有指定类型的字段名称和所在的表名 --查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 ...
- oracle数据库中的虚拟表,Oracle10g中的虚拟专用数据库(VPD)
什么是VPD 所谓虚拟专用数据库(VPD)指的是,通过在数据库里进行配置,从而让不同的用户只能查看某个表里的部分数据.VPD分为以下两个级别: 行级别:在该级别下,可以控制某些用户只能查看到某些行数据 ...
- 如何从Oracle数据库中的表中获取列名(字段名)列表?
如何从Oracle数据库中的表中获取列名(字段名)列表? 目录 如何从Oracle数据库中的表中获取列名(字段名)列表? #示例一 #示例二 示例三: #示例一 可以获取: table_name:表名 ...
- Oracle表里的照片怎么导出来,如何导出oracle数据库中某张表到excel_oracle数据库表格导出到excel...
如何将oracle数据库表字段导成excel表格 这个你只要用ADO连oracle并获取记录集,根据你用的编程语言打开EXCEL,然后操作EXCEL对象的工作表就可以了.以VB为例: 1.在工程中引用 ...
- 如何将oracle数据库中的表结构导入到sqlserver中,Oracle转换成SqlServer数据库的步骤...
1 背景 ITM系统目前支持MysqL.Oracle数据库,由于现在需要和CA产品进行结合,用CA产品的采集功能进行数据采集,因此需要使用CA产品的sqlServer数据库,为了使得系统支持sqlse ...
- JDBC查询Oracle全部表名称,如何使用JDBC API从Oracle数据库中的现有表中检索记录?...
您可以使用UPDATE查询来更新/修改表中记录的现有内容.使用此功能,您可以更新表的所有记录或特定记录. 语法UPDATE table_name SET column1 = value1, colum ...
- oracle表重命名 索引,CSS_在Oracle数据库中按用户名重建索引的方法,如果你管理的Oracle数据库下某 - phpStudy...
在Oracle数据库中按用户名重建索引的方法 如果你管理的Oracle数据库下某些应用项目有大量的修改删除操作, 数据索引是需要周期性的重建的. 它不仅可以提高查询性能, 还能增加索引表空间空闲空间大 ...
- jdbc oracle 删除数据库连接,如何使用JDBC API从Oracle数据库中删除表?
您可以使用INSERT查询将记录插入表中. 语法INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1 ...
最新文章
- [原]Java 正则 多子串 匹配 替换
- Containers vs Serverless
- struts2 文件上传与下载 (初始文件上传的底层技术)——struts2第七讲
- Mat转CImage
- wxWidgets:命令行参数
- PWM 发生器模块设计
- Memory-Associated Differential Learning论文及代码解读
- SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- CodeForces 8D Two Friends 判断三个圆相交
- MFC开发IM-字符串转换大全
- Odoo10参考系列--Mobile JavaScript
- python壁纸数据抓取_python 多线程爬取壁纸网站的示例
- JavaScript 从入门到放弃(二)模块化工具requirejs
- html 控制边框长度,如何控制CSS边框长度的示例代码分享
- 基于Python-Pygame:200行代码实现完整的俄罗斯方块
- 二、VS插件之VassistX
- 小程序怎么判断是在PC端打开的还是手机端打开的?
- MS SQL2000个人版安装教程(图文教程)
- 剑指21.调整数组顺序使奇数位于偶数前面 python leetcode
- 上海跳槽后 如何进行公积金转移?