Today I had a need to be able to list the columns and their data types for a view that exists in Oracle. Since I know TOAD displays this info in a grid in the schema view, I figured the easiest way to solve this problem would be to setup a trace and see how it does it… Here are the results in case you or I need this again in the future.
select cols.column_id ,cols.column_name as name ,nullable ,data_type as type ,decode( data_type ,'CHAR' ,char_length ,'VARCHAR' ,char_length ,'VARCHAR2' ,char_length ,'NCHAR' ,char_length ,'NVARCHAR' ,char_length ,'NVARCHAR2' ,char_length ,null) as nchar_length ,decode( data_type ,'NUMBER' ,data_precision + data_scale, data_length ) as length ,data_precision as precision ,data_scale as scale ,data_length as dlength ,data_default ,' ' comments ,data_type_mod ,cols.char_used ,initCap(histogram) as histogram ,num_distinct from all_tab_columns cols where 1=1 and cols.table_name = :TABNAME and cols.owner = :OWNNAME order by column_id