SELECT
T.TABLE_NAME,
c.comments tableComments,
cc.column_name,
cc.comments colComments,
tc.data_type || '(' || tc.DATA_LENGTH || ')'
FROM
USER_TABLES T
LEFT JOIN user_tab_comments c ON T .TABLE_NAME = c.table_name
LEFT JOIN user_col_comments cc ON T .TABLE_NAME = cc.table_name
LEFT JOIN user_tab_columns tc ON tc.TABLE_NAME = cc.table_name
and tc.column_NAME = cc.column_name;