Oracle、达梦:☆获取数据库对象、获取对象的DDL定义语句(达梦)

这篇具有很好参考价值的文章主要介绍了Oracle、达梦:☆获取数据库对象、获取对象的DDL定义语句(达梦)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

  • 以下方式在达梦DM数据库中都能跑通,Oracle未测试所有的方式。

1、获取所有对象——所有模式下的

  • 数据库所有对象表:包括表、视图、物化视图、函数、存储过程……等

①、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:表示数据文件,这是存储数据库数据的物理文件。
  16. FUNCTION:函数。
  • 达梦的ALL_OBJECTS中的OBJECT_TYPE表示:
  1. TABLE:表示表,这是用于存储和管理数据库中数据的主要结构。
  2. VIEW:表示视图,它是一个虚拟表,基于一个或多个表的列的查询结果生成。
  3. PROCEDURE:表示存储过程,它是一组预编译的SQL语句,用于执行特定的操作或逻辑。
  4. FUNCTION:表示函数,它是一组可调用的代码块,用于执行特定的操作或计算结果。
  5. SEQUENCE:表示序列,它是一个数据库对象,用于生成唯一的序列号。
  6. INDEX:表示索引,它可以帮助提高查询的性能,通过创建单独的表来存储查询中使用的列的值。
  7. MATERIALIZED VIEW:表示物化视图,它是基于一个或多个表的查询结果预先计算并存储的视图。
  8. PACKAGE:表示包,这是用于封装和组织相关过程和类型的逻辑单元。
  9. TYPE:表示自定义类型,这是用户定义的数据类型。

②获取所有对象的其他方式

-- 方式1---------------------
select * from DBA_OBJECTS where OWNER = 'APP1';

-- 方式2---------------------
-- 不能区分:函数、存储过程
select * from SYS.SYSOBJECTS where SCHID = '150996004';

-- 方式3---------------------
select * from ALL_OBJECTS where owner = 'APP1';

2、获取所有对象——当前登陆模式下的

  • 就是把前面的ALL,改成USER
  • 如果只查询登陆模式下的对象,建议这种方式
SELECT * FROM USER_OBJECTS;

3、获取其他对象

  • ps:包括所有模式、当前模式。当前模式一般是把all换成user

3.1、

-- 获取表——所有模式
select * from all_tables;
-- 获取表——当前登陆模式
select * from user_tables;

3.2、字段

  • 包括表、视图、物化视图的字段
-- 获取所有模式下的所有字段,where可以指定模式
select * from all_tab_columns where owner = 'APP1';
-- 获取当前登陆模式的字段
select * from user_tab_columns;

3.3、视图

-- 获取视图——所有模式
select * from all_views;
-- 获取视图——当前登陆模式
select * from user_views;

3.4、索引

-- 获取索引——所有模式
select * from all_indexes where owner = 'APP1';
-- 获取索引——当前登陆模式
select * from user_indexes;
  • 获取索引列——索引指定的列
-- 获取索引列——所有模式
select * from all_ind_columns where index_owner = 'APP1';
-- 获取索引列——当前登陆模式
select * from user_ind_columns;
-- 获取当前登陆模式下的索引列——按索引名字去重并统计数量
select count(DISTINCT INDEX_NAME) from user_ind_columns;

3.5、约束——包括主键、外键

  • CONSTRAINT_TYPE:P:主键R:外键
  • 约束还包括:检查……等
-- 获取约束——所有模式
select * from all_constraints where owner = 'APP1';
-- 获取约束——当前登陆模式
select * from user_constraints;
  • 查询约束所在的列
-- 查询约束列(列上有约束)——所有模式
select * from all_cons_columns where owner = 'APP1';
-- 查询约束列(列上有约束)——当前登陆模式
select * from user_cons_columns;

3.6、物化视图——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-数据定义语言(达梦)

  • 语法: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

…… 还可以获取建表等的语句。文章来源地址https://www.toymoban.com/news/detail-777079.html

到了这里,关于Oracle、达梦:☆获取数据库对象、获取对象的DDL定义语句(达梦)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)

    写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 第一章 《认识与环境搭建》 第二章 《数据类型》 第三章 《数据定义语言DDL》 DDL(Data Definition Language,数据定义语言) 是用于定义和管理数据库对象(如表、视图、索引等

    2024年02月20日
    浏览(32)
  • Oracle获取创建对象的DDL脚本

    例如,对tzq schema下的表 test2,查看DDL脚本的SQL如下:

    2024年02月14日
    浏览(40)
  • Oracle获取对象的DDL创建语句

    上面图示,仅展示了如何获取用户的DDL创建语句,其他对象(如,表,索引等)的获取操作同上。

    2024年04月13日
    浏览(25)
  • MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

    MySQL是一种数据库管理系统 (DBMS),是基于客户机-服务器的数据库; 分为两个不同的部分, 服务器软件(MySQL DBMS)是负责所有数据访问和处理的一个文件,这个软件运行在称为数据库服务器的计算机上,与数据文件打交道; 客户机则是与用户打交道的软件,对于用户提出的

    2024年02月03日
    浏览(50)
  • 达梦数据库 SQL 错误 [22000]:列[xxx]长度超出定义——笔记

    今天碰到一个看表结构字段长度是够的;但是执行sql的时候报字段长度不够的问题;记录一下 大概场景就是新增一条数据,在插入数据库的时候,一个varchar字段在报 SQL 错误 [22000]:列[xxx]长度超出定义 把这个字段拿出来单独查 LENGTH() 函数,长度是在字段长度范围内的; 后来

    2024年02月08日
    浏览(55)
  • 往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)

    cloudbeaver默认没有开放impala连接,更不会支持国产数据库了 docker安装运行cloudbeaver可以参考文章:docker安装运行CloudBeaver并设置默认语言为中文 本文跳过cloudbeaver镜像拉取,直接就开始实现自定义数据库连接功能 1.1、新建挂载的宿主机根目录 挂载的文件都放置该目录下 1.2、运

    2024年01月19日
    浏览(61)
  • Mysql-------SQL:DDL数据定义语言、DDM数据操作语言、DQL数据库查询语言、DQL数据控制语言

    SQL语言可以分为: DDL(Data Definition Language)语言:数据定义语言,用于 创建或更改数据库中的表、视图、索引等对象 DML(Data Manipulation Language)语言:数据操作语言,用来对 数据库表中的数据进行增删改查操作; DQL(Data Query Language)语言: 数据查询语言,用来查询数据库

    2024年02月13日
    浏览(60)
  • Oracle快速将A库的数据库对象同步到B库(包括数据)

    1.在pl/sql中导出A的用户对象 2.导出表数据,直接导PDE文件 如果PDE不行的话就到选择第一个dmp 3.然后把用户B的对象重新创建一遍,数据导进去。 创建对象的时候table和sequence都要删掉重新创建,不然会报已存在。

    2024年02月16日
    浏览(26)
  • LR中监控ORACLE数据库常用计数器(如何自定义Oracle计数器)

    目录 一、添加自定义计数器的方法 1、要创建自定义查询,请执行以下操作: 2、配置文件示例对象 二、常用自定义计数器列表 三、LR中监控ORACLE数据库常用计数器遇到问题及处理 1. 在安装路径的Mercury LoadRunnerdatmonitors找到vmon.cfg文件,打开。 2. 在vmon.cfg文件的第三行中,

    2024年02月15日
    浏览(39)
  • Python从Oracle数据库中获取数据——fetchall(),fetchone(),fetchmany()函数功能分析

    Python从Oracle数据库中获取数据——fetchall(),fetchone(),fetchmany()函数功能分析 1、fetchall()函数,它的返回值是多个元组,即返回多个行记录,如果没有结果,返回的是() 2、fetchone()函数,它的返回值是单个的元组,也就是一行记录,如果没有结果,那就会返回None,每次向后抓取一条记录 3、

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包