虽然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);