如何获取表的列名,数据类型,大小和注释?
我试过
SELECT all_tab.column_name, all_tab.data_type, all_tab.data_length, col_com.COMMENTS
FROM all_tab_columns all_tab
JOIN user_col_comments col_com ON all_tab.TABLE_NAME = col_com.TABLE_NAME
WHERE all_tab.TABLE_NAME='MY_TABLE'
但它没有用。怎么办?
答案 0 :(得分:2)
您需要添加列名称连接:
SELECT all_tab.column_name,
all_tab.data_type,
all_tab.data_length,
(SELECT COMMENTS
FROM user_col_comments t
where t.TABLE_NAME = all_tab.TABLE_NAME
and t.COLUMN_NAME = all_tab.column_name)
FROM all_tab_columns all_tab
WHERE all_tab.TABLE_NAME = 'MY_TABLE'
答案 1 :(得分:1)
USER_视图显示有关对象的信息,在这种情况下为表,由您连接的模式用户拥有。 ALL_视图显示连接的模式用户有权查看的对象的信息。
如果您只对架构所有者创建的对象感兴趣,那么请务必使用USER_视图。
但是,你可能想要;
SELECT all_tab.owner,
all_tab.table_name,
all_tab.column_name,
all_tab.data_type,
all_tab.data_length,
col_com.comments
FROM all_tab_columns all_tab
JOIN all_col_comments col_com
ON all_tab.table_name = col_com.table_name
AND all_tab.owner = col_com.owner
WHERE all_tab.table_name = 'MY_TABLE'
这当然对我有用,但你可能也想考虑检索DATA_PRECISION和DATA_SCALE