SQL 描述Oracle数据字典视图,你使用的是 Oracle 数据库,但不记得 Oracle 数据库有哪些可用的数据字典视图,也忘了它们包含了哪些列。更糟糕的是,你不方便查找官方文档。
SQL 描述Oracle数据字典视图 问题描述
你使用的是 Oracle 数据库,但不记得 Oracle 数据库有哪些可用的数据字典视图,也忘了它们包含了哪些列。更糟糕的是,你不方便查找官方文档。
SQL 描述Oracle数据字典视图 解决方案
本实例仅适用于 Oracle 数据库。Oracle 数据库不仅具有一组内容丰富的数据字典视图,还通过另一组数据字典视图为它们提供详细的注解。这真是精彩的循环。
查询 DICTIONARY
视图,并列出数据字典视图及其目的。
select table_name, comments
from dictionary
order by table_name;
TABLE_NAME COMMENTS
------------------------------ --------------------------------------------
ALL_ALL_TABLES Description of all object and relational
tables accessible to the user
ALL_APPLY Details about each apply process that
dequeues from the queue visible to the
current user
...
查询 DICT_COLUMNS
,并找出某个数据字典视图的各列含义。
select column_name, comments
from dict_columns
where table_name = 'ALL_TAB_COLUMNS';
COLUMN_NAME COMMENTS
------------------------------ ------------------------------------------
OWNER
TABLE_NAME Table, view or cluster name
COLUMN_NAME Column name
DATA_TYPE Datatype of the column
DATA_TYPE_MOD Datatype modifier of the column
DATA_TYPE_OWNER Owner of the datatype of the column
DATA_LENGTH Length of the column in bytes
DATA_PRECISION Length: decimal digits (NUMBER) or binary
digits (FLOAT)
SQL 描述Oracle数据字典视图 扩展知识
以前,Oracle 数据库的官方文档不像现在这样能通过互联网方便地查看,因而在当时,DICTIONARY
和 DICT_COLUMNS
视图无疑是非常方便的工具。仅仅借助这两个视图,你就能学习到其他全部数据字典视图的知识,进而了解整个数据库。时至今日,了解 DICTIONARY
和 DICT_COLUMNS
视图也非常方便。有时你可能会忘记某个数据库对象对应的数据字典视图名称,你可以用一个含有通配符的查询来找到它。例如,要知道查询哪个视图能得到某个模式下的全部表。
select table_name, comments
from dictionary
where table_name LIKE '%TABLE%'
order by table_name;
上述查询获取了所有名称中含有 TABLE
一词的数据字典视图。在这里,我们利用了 Oracle 数据库非常一致的数据字典视图命名习惯。描述表的视图名称里往往都带有 TABLE
。(有时候会使用 TABLE
的缩写形式 TAB
,例如 ALL_TAB_COLUMNS
。)