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';