USER_TAB_COLS,USER_TAB_COLUMNS,ALL_TAB_COLS,ALL_TAB_COLUMNS获取数据库元素的区别

参考: ALL_TAB_COLSALL_TAB_COLUMNS

1,相同点和区别

这几个视图,都可以用于获取数据库中的表,视图,Clusters中的数据。

区别:
1)_TAB_COLS和_TAB_COLUMNS区别在于,*_TAB_COLS中包含隐藏的列。
【HIDDEN_COLUMN,VIRTUAL_COLUMN,SEGMENT_COLUMN_ID,INTERNAL_COLUMN_ID,QUALIFIED_COL_NAME】
2)
①ALL_TAB_COLS用于获取当前用户可访问的表,视图和Clusters数据。
②DBA_TAB_COLS 用于获取数据库中所有表,视图和Clusters数据。
③USER_TAB_COLS用于获取当前用户拥有的表,视图和Clusters数据。只是该视图不显示 “OWNER” 列。
USER_TAB_COLS,USER_TAB_COLUMNS,ALL_TAB_COLS,ALL_TAB_COLUMNS获取数据库元素的区别

常用的获取某张表或视图的表结构,SQL如下:

--获取表、视图结构
SELECT TABLE_NAME AS 表名称,COLUMN_NAME AS 列名称,DATA_TYPE AS 列数据类型,DATA_LENGTH AS 列长度,NULLABLE AS 非空,DATA_DEFAULT AS 默认值,INTERNAL_COLUMN_ID AS 列的内部序号 FROM USER_TAB_COLS WHERE TABLE_NAME = '表名' ORDER BY INTERNAL_COLUMN_ID