您正在寻找
USER_TAB_COLUMNS – 查询在 – 或
ALL_TAB_COLUMNS中执行的模式中的所有列及其描述与用户有权查看的所有表格相同。
典型的查询可能是:
select *
from user_tab_columns
where table_name = 'MY_TABLE'
order by column_id
column_id是表中列的“顺序”。
你应该确保’MY_TABLE’被大写,除非你已经添加了表壳(一个坏主意),在这种情况下你需要使用像“MyTable”这样的东西。
具体的desc相当于我从ss64那里偷走了一个很好的Oracle资源:
select column_name as "Name"
, nullable as "Null?"
, concat(concat(concat(data_type,'('),data_length),')') as "Type"
from user_tab_columns
where table_name = 'MY_TABLE';
您可以通过选择*从字典找到所有这种视图,这是data dictionary的顶级或通过查看documentation。
还有DBA_TAB_COLUMNS,与ALL_TAB_COLUMNS相同,但对于数据库中的每个表。这假设您有权查看它和表。如果您无法访问此表,则需要让DBA授予您SELECT ANY DICTIONARY权限。