我们是不能直接访问数据字典表的,但可以通过数据字典视图访问其中的信息。要列出可用的数据字典视图,查询视图DICTIONARY就可以。
在静态数据字典视图里有三大类开头的视图:ALL_、DBA_、USER_
- ALL_视图显示所有的信息,当前用户,包括从其他架构中对象的当前用户的模式以及信息访问,如果当前用户拥有的权限或角色授权的方式访问这些对象。
- DBA_视图显示整个数据库中的所有相关信息。DBA_视图仅供管理员使用。只有拥有SELECT ANY DICTIONARY权限的用户才能访问它们。此权限DBA在系统最初安装时分配给角色。
- USER_视图显示从当前用户的模式中的所有的信息。查询这些视图不需要特殊权限。
ALL_,DBA_以及USER_对应于单个数据字典表视图通常是几乎相同的。
官网:
然后就可以通过文档说明找到对应的视图。
查询常用的Oracle元数据sql:
-- 模式 SELECT * FROM DBA_TABLESPACES; -- 表 select * from user_tables ut LEFT JOIN user_tab_comments utc ON ut.TABLE_NAME = utc.TABLE_NAME; -- 字段 select t.TABLE_NAME 表名,t.COLUMN_NAME 描述,t.DATA_TYPE 类型,t.DATA_LENGTH 长度,t.NULLABLE 是否为空,t.DATA_DEFAULT 默认值,s.comments 描述 from user_tab_columns t LEFT JOIN user_col_comments s ON t.COLUMN_NAME = s.COLUMN_NAME WHERE t.TABLE_NAME ='ASSET_BASE_TABLE'; -- 分区 SELECT * FROM USER_PART_KEY_COLUMNS; -- 索引 SELECT * FROM USER_INDEXES; -- 视图 SELECT * FROM USER_VIEWS; -- 主键 select cu.* from USER_CONS_COLUMNS cu, USER_CONSTRAINTS au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P';
总结
到此这篇关于MySQL和Oracle元数据抽取的文章就介绍到这了,更多相关MySQL Oracle元数据抽取内容请搜索