columns.sql

select table_name, 
       column_name, 
       DECODE(data_type, 'VARCHAR2', data_type || '(' || ltrim(rtrim(to_char(data_length))) || ')', data_type) Data_Type, 
       DECODE(nullable, 'N', 'NOT NULL') Nullable
from user_tab_columns
WHERE table_name in (SELECT table_name from user_tables)
/