il comando desc viene interpretato in modo diverso per strumenti diversi. Quello che fa è selezionare alcune viste Oracle standard.
Ecco una query su quelle viste che forniranno i dati di colonna desiderati, ma ti incoraggio a selezionare * per vedere tutto ciò che è disponibile.
Hai 3 tipi di visualizzazioni, dba_, all_ e visualizzazioni utente_*. Uso user_* perché è disponibile per ogni schema/utente, ma elenca solo gli oggetti di proprietà di quello schema/utente. Le viste dba_ sono in genere solo per dba e le viste all_ potrebbero o non potrebbero essere disponibili per te a seconda di quanto il tuo dba si fida di te. ^_^
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)