打个比方就是有个表叫student,里面有个stu_ID字段,如果我想看看这个字段还在哪些表出现过该怎么看呢?
sys用户下有这么几个视图:USER_CONS_COLUMNS,USER_COL_COMMENTS,USER_TAB_COLS,USER_TAB_COLUMNS,USER_TAB_COMMENTS。这几个表都记录了字段的信息。
例子:
USER_TAB_COLUMNS,记录了表名,表的字段,字段类型,字段长度等等。
SELECT * FROM SYS.USER_TAB_COLUMNS WHERE UPPER(COLUMN_NAME)='STU_ID'
通过这个这个SQL就可以判断一个字段名在哪些表里出现过了。当然这个字段所代表的意义是否就是和student这个表里该字段的意义,就要分析一下表结构或程序代码了。
USER_COL_COMMENTS,记录了字段的备注
另外列几个有用的视图:
DBA_OBJECTS,记录了数据库里所有的OBJCET,如表,存储过程,同义词等等。
可以看看以DBA_开头的视图,里面有很多信息可用。
USER_TABLES,记录了表名,表所在的表空等信息
USER_TABLESPACES,记录了表空信息
USER_TAB_PARTITIONS记录了分区表的信息,分多少个区等。
可以多看看sys用户下以USER_开头的视图,同样会发现有很多信息。