SET LINESIZE 200

SET PAGESIZE 50000


COLUMN column_name FORMAT A30

COLUMN data_type FORMAT A30


SELECT 

  column_name, 

  data_type || 

    (CASE 

      WHEN data_type IN ('VARCHAR2', 'CHAR', 'NVARCHAR2', 'NCHAR') THEN '(' || data_length || ')'

      WHEN data_type IN ('NUMBER') THEN

        (CASE

          WHEN data_precision IS NOT NULL AND data_scale IS NOT NULL THEN '(' || data_precision || ',' || data_scale || ')'

          WHEN data_precision IS NOT NULL AND data_scale IS NULL THEN '(' || data_precision || ')'

          ELSE ''

        END)

      ELSE ''

    END) AS data_type

FROM 

  all_tab_columns

WHERE 

  owner = UPPER('your_schema_name') AND

  table_name = UPPER('your_table_name')

ORDER BY 

  column_id;