作者:雨竹清风
所有的数据字典可以在v$fixed_table和dictionary中获得。
获得方法如下所示:
SQL> desc v$fixed_table//查看结构
名称 是否为空? 类型
------------ -------- ------------
NAME VARCHAR2(30)
OBJECT_ID NUMBER
TYPE VARCHAR2(5)
TABLE_NUM NUMBER
SQL> select NAME from v$fixed_table;//如果用此命令会有1000多行,因此有两种解决方法。
一是,这些数据字典都想查看,好奇心比较强,或者说是处于某种需要。可以使用spool命令将数据全部输入到某个文件中去。如:spool c:\fixed_table_data.txt。
二是,为这行命令加一个where条件。如下所示:
SQL> select NAME from v$fixed_table where NAME like '%TABLE%';
NAME
GV$FIXED_TABLE
V$FIXED_TABLE
GV$TABLESPACE
V$TABLESPACE
GV$TRANSPORTABLE_PLATFORM
V$TRANSPORTABLE_PLATFORM
GV$DB_TRANSPORTABLE_PLATFORM
V$DB_TRANSPORTABLE_PLATFORM
X$KGLTABLE
已选择9行。
也可以从dictionary中获得,dictionary有两列,一列是TABLE_NAME,一列是COMMENTS。COMMENTS所显示的信息是对此列的介绍。
SQL> desc dictionary;
名称 是否为空? 类型
---------- -------- ------
TABLE_NAME VARCHAR2(30)
COMMENTS VARCHAR2(4000)
SQL> col TABLE_NAME for a20
SQL> col COMMENTS for a40
SQL> select * from dictionary where TABLE_NAME like '%TABLE%';
TABLE_NAME COMMENTS
-------------------- -------------------
USER_TABLES Description of the user's own relational
tables
仅仅是列出来了一项。
如果查询某列的解释可以查询数据字典dict_columns。
SQL> col TABLE_NAME for a20
SQL> col COMMENTS for a30
SQL> col COLUMN_NAME for a20
SQL> select * from dict_columns where table_name='DBA_TABLES' and column_name ='INITIAL_EXTENT';
TABLE_NAME COLUMN_NAME COMMENTS
---------- --------------- -------------------
DBA_TABLES INITIAL_EXTENT Size of the initial extent in bytes 可以看出此列的意思是首个分配的磁盘分区的字节数。