Oracle系统视图

VIEW TABLES

1、DBA_TABLES --查看系统里所有表的信息,只有DBA权限用户才可查看
SELECT * FROM DBA_TABLES WHERE OWNER='HR' AND TABLE_NAME LIKE '%TEST\_%' ESCAPE '\';

2、ALL_TABLES   --查看所有当前用户有权限访问的所有表的信息
SELECT * FROM ALL_TABLES WHERE OWNER='HR' AND TABLE_NAME LIKE '%TEST\_%' ESCAPE '\';

3、USER_TABLES --查看用户权限可看的表信息
SELECT * FROM USER_TABLES WHERE OWNER='HR' AND TABLE_NAME LIKE '%TEST\_%' ESCAPE '\';

所以以上3个视图中,user_tables的范围最小,all_tables看到的东西稍多一些,而dba_tables看到最多的信息

VIEW COLUMNS

1、DBA_TAB_COLS/DBA_TAB_COLUMNS --查看系统里所有表的信息,只有DBA权限用户才可查看
SELECT * FROM DBA_TAB_COLS WHERE TABLE_NAME='HR.TEST_CALC' ;

2、ALL_TAB_COLS/ALL_TAB_COLUMNS --查看所有当前用户有权限访问的所有表的信息
SELECT * FROM DBA_TAB_COLS WHERE TABLE_NAME='HR.TEST_CALC' ;


3、USER_TAB_COLS/USER_TAB_COLUMNS --查看用户权限可看的表信息
SELECT * FROM DBA_TAB_COLS WHERE TABLE_NAME='HR.TEST_CALC' ;

不同的是*_TAB_COLS比*_TAB_COLUMNS多几列:
HIDDEN_COLUMN VARCHAR2(3)
VIRTUAL_COLUMN VARCHAR2(3)
SEGMENT_COLUMN_ID NUMBER
INTERNAL_COLUMN_ID NOT NULL NUMBER
QUALIFIED_COL_NAME VARCHAR2(4000)
因此使用时要根据实际情况去使用COLS或者COLUMNS,如果需要全面的信息包括hidden的信息必须用COLS

VIEW SEGMENTS

1、DBA_SEGMENTS --查看所有分区段(有分区的表)、分区部门、分区表空间的分区段(segment)视图,前提是DBA权限
SELECT SEGMENT_NAME,PARTITION_NAME,TABLESPACE_NAME FROM DBA_SEGMENTS WHERE SEGMENT_NAME='HR.TEST_CALC';

2、USER_SEGMENTS --查看用户的分区段(有分区的表)、分区部门、分区表空间的分区段(segment)视图
SELECT SEGMENT_NAME,PARTITION_NAME,TABLESPACE_NAME FROM USER_SEGMENTS WHERE SEGMENT_NAME='HR.TEST_CALC';

  

posted @ 2016-03-30 16:48  JeromeZ  阅读(562)  评论(0编辑  收藏  举报