雖然DESC 命令能查看表的結構,但有時希望將表的結構輸入到一張表中去或導入到EXCEL。用DESC命令有點繁瑣。其實一條SQL語句即可。
查詢自己能看到的表的表結構:
SELECT T1.TABLE_NAME,
T1.COLUMN_NAME,
T1.DATA_TYPE || '(' || T1.DATA_LENGTH || ')',
T2.COMMENTS
FROM USER_TAB_COLS T1, USER_COL_COMMENTS T2
WHERE T1.TABLE_NAME = T2.TABLE_NAME
AND T1.COLUMN_NAME = T2.COLUMN_NAME
AND T1.TABLE_NAME = 'EMP';
如果是DBA則可能過ALL_ 和DBA_來查詢所有的表結構。
SQL92的寫法,但是不知道怎么加限制條件,好像用了USING就不可以了。當然可以去掉USING換成 ON
SELECT TABLE_NAME,
COLUMN_NAME,
T1.DATA_TYPE || '(' || T1.DATA_LENGTH || ')',
T2.COMMENTS
FROM USER_TAB_COLS T1 INNER JOIN USER_COL_COMMENTS T2
USING(table_name,COLUMN_name);
注意,如果有些字段沒有注釋,是不能顯示的, 這樣改:
SELECT t.table_name,
t.colUMN_NAME,
t.DATA_TYPE || '(' || t.DATA_LENGTH || ')',
t1.COMMENTS
FROM User_Tab_Cols t, User_Col_Comments t1
WHERE t.table_name = t1.table_name
AND t.column_name = t1.column_name(+);
加個外連接就行了。