首页 > 数据库 >Oracle、达梦:获取数据库对象、获取对象的DDL-数据定义语言

Oracle、达梦:获取数据库对象、获取对象的DDL-数据定义语言

时间:2023-11-20 09:45:21浏览次数:51  
标签:-- 定义语言 视图 查询 获取 DDL TYPE SELECT VIEW

一、获取据库对象(Oracle、达梦)

  • ALL_OBJECTS
    • 数据库所有对象表:包括表、视图、物化视图、函数……等
-- 查询所有对象
SELECT * from ALL_OBJECTS
-- 筛选条件 - OWENR:哪个数据库。- OBJECT_TYPE 类型:
SELECT OBJECT_NAME,OBJECT_TYPE from ALL_OBJECTS
WHERE OWNER = 'MIDDLE' AND OBJECT_TYPE = 'MATERIALIZED VIEW'

类型(OBJECT_TYPE)

  • oracle的ALL_OBJECTS中的OBJECT_TYPE表示:
  1. TABLE:表示表,这是用于存储和管理数据库中数据的主要结构。
  2. VIEW:表示视图,它是一个虚拟表,基于一个或多个表的列的查询结果生成。
  3. PROCEDURE:表示存储过程,它是一组预编译的SQL语句,用于执行特定的操作或逻辑。
  4. SEQUENCE:表示序列,它是一个数据库对象,用于生成唯一的序列号。
  5. INDEX:表示索引,它可以帮助提高查询的性能,通过创建单独的表来存储查询中使用的列的值。
  6. MATERIALIZED VIEW:表示物化视图,它是基于一个或多个表的查询结果预先计算并存储的视图。
  7. JAVA SOURCE:表示Java源代码,这是存储在数据库中的Java类或接口的源代码。
  8. JAVA CLASS:表示Java类,这是编译后的Java类,存储在数据库中。
  9. JAVA RESOURCE:表示Java资源,这可以是任何类型的资源,如属性文件、文本文件等。
  10. JAVA DATA:表示Java数据对象,这是存储在数据库中的Java对象。
  11. XML TABLE:表示XML表,这是将XML文档作为表进行存储和处理的方式。
  12. TYPE:表示自定义类型,这是用户定义的数据类型。
  13. PACKAGE:表示包,这是用于封装和组织相关过程和类型的逻辑单元。
  14. JAVA RESOURCE:表示Java资源,这可以是从文件中导入的任何类型的资源。
  15. DATA FILE:表示数据文件,这是存储数据库数据的物理文件。
  • 达梦的ALL_OBJECTS中的OBJECT_TYPE表示:
  1. TABLE:表示表,这是用于存储和管理数据库中数据的主要结构。
  2. VIEW:表示视图,它是一个虚拟表,基于一个或多个表的列的查询结果生成。
  3. PROCEDURE:表示存储过程,它是一组预编译的SQL语句,用于执行特定的操作或逻辑。
  4. FUNCTION:表示函数,它是一组可调用的代码块,用于执行特定的操作或计算结果。
  5. SEQUENCE:表示序列,它是一个数据库对象,用于生成唯一的序列号。
  6. INDEX:表示索引,它可以帮助提高查询的性能,通过创建单独的表来存储查询中使用的列的值。
  7. MATERIALIZED VIEW:表示物化视图,它是基于一个或多个表的查询结果预先计算并存储的视图。
  8. PACKAGE:表示包,这是用于封装和组织相关过程和类型的逻辑单元。
  9. TYPE:表示自定义类型,这是用户定义的数据类型。

二、获取对象的DDL-数据定义语言(达梦)

  • 语法:SELECT dbms_metadata.get_ddl('对象类型','对象名称') FROM DUAL
  • 对象类型见:类型(OBJECT_TYPE)达梦
-- 获取DDL语句(根据不同类型)
SELECT dbms_metadata.get_ddl('MATERIALIZED_VIEW','WH_LOG') FROM DUAL

-- 获取DDL-物化视图日志
SELECT dbms_metadata.get_ddl('TABLE','MLOG$_Z_ZZX') FROM DUAL
-- 获取DDL-物化视图
SELECT dbms_metadata.get_ddl('MATERIALIZED_VIEW','CS_COMMIT_COMPLETE') FROM DUAL
SELECT dbms_metadata.get_ddl('MATERIALIZED_VIEW_LOG','MLOG$_Z_ZZX') FROM DUAL

-- 获取DDL-视图
SELECT dbms_metadata.get_ddl('VIEW','V1') FROM DUAL

三、Oracle查询物化视图

  • 也可以使用《一》中的ALL_OBJECTS进行查询
-- 整个数据库的物化视图
select * from DBA_MVIEWS where OWNER = 'MIDDLE'

-- 当前用户的物化视图
SELECT * FROM USER_MVIEWS WHERE MVIEW_NAME = 'V2'

-- 创建物化日志
create materialized view log on "Z_ZZX" with rowid, sequence (ID_CPM_JH, CODE) including new values;

-- 查询物化视图的日志
select * from MLOG$_Z_ZZX

-- 查询物化视图日志表
SELECT * from ALL_OBJECTS WHERE OWNER = 'MIDDLE' and OBJECT_NAME LIKE '%MLOG$%'

-- 查询物化视图
SELECT * from ALL_OBJECTS
WHERE OWNER = 'MIDDLE' AND OBJECT_TYPE = 'MATERIALIZED VIEW'

-- 查询物化视图需要的表
select REFERENCED_NAME from ALL_DEPENDENCIES WHERE OWNER = 'MIDDLE' AND TYPE = 'MATERIALIZED VIEW' AND NAME = 'WH_LOG' AND REFERENCED_NAME <> 'WH_LOG'

-- 连表查询物化视图以及使用到的表
SELECT * FROM user_mviews um left join SYS.ALL_DEPENDENCIES ad on ad.NAME = um.MVIEW_NAME WHERE ad.OWNER = 'MIDDLE' AND ad.TYPE = 'MATERIALIZED VIEW' AND ad.NAME = 'WH_LOG' AND ad.REFERENCED_NAME <> 'WH_LOG'

标签:--,定义语言,视图,查询,获取,DDL,TYPE,SELECT,VIEW
From: https://www.cnblogs.com/kakarotto-chen/p/17843198.html

相关文章

  • jsoup根据id 选择器来获取具有特定ID的元素
      importorg.jsoup.Jsoup;importorg.jsoup.nodes.Document;importorg.jsoup.nodes.Element;publicclassMain{publicstaticvoidmain(String[]args){Stringhtml="<html><body><divid='myId'>我是ID为myId的di......
  • 获取非当前工作表名称并选择其中B2:B11区域
    1SubSheet3_按钮1_Click()2DimshAsWorksheet,n%,i%,arr,s3n=ThisWorkbook.Sheets.Count'取得工作表总数'4ReDimarr(1Ton)'声明变量'5ForEachshInThisWorkbook.Sheets'循环检查工作表表名'6Ifsh.Name&......
  • Spring Boot 如何获取Excel sheet页的数量?
    前言在日常的开发中,我们经常需要读取Excel文件中的数据,其中涉及到获取Excel中sheet页的数量。本文将介绍如何使用SpringBoot获取Excelsheet页的数量。摘要本文主要介绍了如何使用SpringBoot获取Excel文件中sheet页的数量。首先通过POI库读取Excel文件,然后通过Workbook对象获......
  • jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方
    jdk8Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法......
  • C/C++ 获取主机网卡MAC地址
    MAC地址(MediaAccessControladdress),又称为物理地址或硬件地址,是网络适配器(网卡)在制造时被分配的全球唯一的48位地址。这个地址是数据链路层(OSI模型的第二层)的一部分,用于在局域网(LAN)中唯一标识网络设备。获取网卡地址主要用于网络标识和身份验证的目的。MAC地址是一个唯一的硬件......
  • Xpath获取指定元素相邻的不被标签括起来的文本
    如图:已知图片中标注1、2、3对应的内容在业务中我需要获取标志2对应的"58"这个值,但是这个值不包括在某个标签中,在span“集数”和br标签之间,为了减小获取"58"这个值不被之前的标签数量的影响先获取标签1所对应的元素,因为标签1有property="v:initialReleaseDate"这个属性和属......
  • 获取月度第一天和最后一天
    //获取月度第一天publicStringgetFirstMonthDay(intmonth){Calendarcalendar=Calendar.getInstance();//设置月份calendar.set(Calendar.MONTH,month-1);//获取某月最小天数intfirstDay=calendar.getActua......
  • MySQL调优学习-快速获取占用CPU较高的SQL语句
    MySQL调优学习-快速获取占用CPU较高的SQL语句背景早上突然发现一个MySQL数据库的CPU使用率居高因为是一个混布的环境上面还有一个redis怕影响业务就上去像查看一下具体是何种原因导致的速度慢因为实发突然,并没有mysqlem等工具所以从网上学到了一个方法进行简单学习与验......
  • [20231115]如何快速获取AWR中涉及到的表.txt
    [20231115]如何快速获取AWR中涉及到的表.txt--//昨天看了链接:如何快速获取AWR中涉及到的表=>https://www.cnblogs.com/jyzhao/p/how-to-get-tables-in-awr.html--//作者介绍的方法是直接从awr报表抽取from后面的信息,grep写法还很少用.grep-o-i'\bFROM\s\+\(\w\+\)'awr.html......
  • springboot 集成jwt 登录 拦截器获取token 解析token放入holder中
    一、依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency>......