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