对于不同的工具,desc命令的解释不同。它做的是选择一些标准的Oracle视图。
这是一个关于这些视图的查询,它将提供所需的列数据,但我建议您执行select *以查看所有可用的列。
您有3种视图类型,即dba_,all_和user_ *视图。我使用user_ *,因为它可用于每个模式/用户,但它仅列出该模式/用户拥有的对象。 dba_视图通常仅适用于dba,并且all_视图可能或可能不适用于您,具体取决于您对dba的信任程度。 ^ _ ^
select tc.column_name,tc.nullable,tc.data_type || case when tc.data_type = 'NUMBER' and tc.data_precision is not null then '(' || tc.data_precision || ',' || tc.data_scale || ')'
when tc.data_type like '%CHAR%' then '(' || tc.data_length || ')'
else null
end type,cc.comments
from user_col_comments cc
join user_tab_columns tc on cc.column_name = tc.column_name
and cc.table_name = tc.table_name
where cc.table_name = upper(:tablename)