ToB企服应用市场:ToB评测及商务社交产业平台

标题: Oracle、达梦:☆获取数据库对象、获取对象的DDL定义语句(达梦) [打印本页]

作者: 圆咕噜咕噜    时间: 2024-3-25 05:32
标题: Oracle、达梦:☆获取数据库对象、获取对象的DDL定义语句(达梦)
一、获取数据库对象(Oracle、达梦)

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

①、ALL_OBJECTS视图方式
  1. -- 查询所有对象
  2. SELECT * from ALL_OBJECTS
  3. -- 筛选条件 - OWENR:哪个数据库。- OBJECT_TYPE 类型:
  4. SELECT OBJECT_NAME,OBJECT_TYPE from ALL_OBJECTS
  5. WHERE OWNER = 'MIDDLE' AND OBJECT_TYPE = 'MATERIALIZED VIEW'
复制代码
OBJECT_TYPE解释:

②获取所有对象的其他方式
  1. -- 方式1---------------------
  2. select * from DBA_OBJECTS where OWNER = 'APP1';
  3. -- 方式2---------------------
  4. -- 不能区分:函数、存储过程
  5. select * from SYS.SYSOBJECTS where SCHID = '150996004';
  6. -- 方式3---------------------
  7. select * from ALL_OBJECTS where owner = 'APP1';
复制代码
2、获取所有对象——当前登陆模式下的

  1. SELECT * FROM USER_OBJECTS;
复制代码
3、获取其他对象

3.1、表
  1. -- 获取表——所有模式
  2. select * from all_tables;
  3. -- 获取表——当前登陆模式
  4. select * from user_tables;
复制代码
3.2、字段

  1. -- 获取所有模式下的所有字段,where可以指定模式
  2. select * from all_tab_columns where owner = 'APP1';
  3. -- 获取当前登陆模式的字段
  4. select * from user_tab_columns;
复制代码
3.3、视图
  1. -- 获取视图——所有模式
  2. select * from all_views;
  3. -- 获取视图——当前登陆模式
  4. select * from user_views;
复制代码
3.4、索引
  1. -- 获取索引——所有模式
  2. select * from all_indexes where owner = 'APP1';
  3. -- 获取索引——当前登陆模式
  4. select * from user_indexes;
复制代码
  1. -- 获取索引列——所有模式
  2. select * from all_ind_columns where index_owner = 'APP1';
  3. -- 获取索引列——当前登陆模式
  4. select * from user_ind_columns;
  5. -- 获取当前登陆模式下的索引列——按索引名字去重并统计数量
  6. select count(DISTINCT INDEX_NAME) from user_ind_columns;
复制代码
3.5、约束——包括主键、外键

  1. -- 获取约束——所有模式
  2. select * from all_constraints where owner = 'APP1';
  3. -- 获取约束——当前登陆模式
  4. select * from user_constraints;
复制代码
  1. -- 查询约束列(列上有约束)——所有模式
  2. select * from all_cons_columns where owner = 'APP1';
  3. -- 查询约束列(列上有约束)——当前登陆模式
  4. select * from user_cons_columns;
复制代码
3.6、物化视图——Oracle

  1. -- 整个数据库的物化视图
  2. select * from DBA_MVIEWS where OWNER = 'MIDDLE'
  3. -- 当前用户的物化视图
  4. SELECT * FROM USER_MVIEWS WHERE MVIEW_NAME = 'V2'
  5. -- 创建物化日志
  6. create materialized view log on "Z_ZZX" with rowid, sequence (ID_CPM_JH, CODE) including new values;
  7. -- 查询物化视图的日志
  8. select * from MLOG$_Z_ZZX
  9. -- 查询物化视图日志表
  10. SELECT * from ALL_OBJECTS WHERE OWNER = 'MIDDLE' and OBJECT_NAME LIKE '%MLOG$%'
  11. -- 查询物化视图
  12. SELECT * from ALL_OBJECTS
  13. WHERE OWNER = 'MIDDLE' AND OBJECT_TYPE = 'MATERIALIZED VIEW'
  14. -- 查询物化视图需要的表
  15. select REFERENCED_NAME from ALL_DEPENDENCIES WHERE OWNER = 'MIDDLE' AND TYPE = 'MATERIALIZED VIEW' AND NAME = 'WH_LOG' AND REFERENCED_NAME <> 'WH_LOG'
  16. -- 连表查询物化视图以及使用到的表
  17. 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-数据定义语言(达梦)

  1. -- 获取DDL语句(根据不同类型)
  2. SELECT dbms_metadata.get_ddl('MATERIALIZED_VIEW','WH_LOG') FROM DUAL
  3. -- 获取DDL-物化视图日志
  4. SELECT dbms_metadata.get_ddl('TABLE','MLOG$_Z_ZZX') FROM DUAL
  5. -- 获取DDL-物化视图
  6. SELECT dbms_metadata.get_ddl('MATERIALIZED_VIEW','CS_COMMIT_COMPLETE') FROM DUAL
  7. SELECT dbms_metadata.get_ddl('MATERIALIZED_VIEW_LOG','MLOG$_Z_ZZX') FROM DUAL
  8. -- 获取DDL-视图
  9. SELECT dbms_metadata.get_ddl('VIEW','V1') FROM DUAL
复制代码
…… 还可以获取建表等的语句。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4