テーブルのスキーマ取得(っぽい)

select
   user_tab_columns.table_name
  ,user_tab_comments.comments
  ,user_tab_columns.column_name
  ,user_col_comments.comments
  ,decode(user_pk.column_name, null, '', 'PK')
  ,user_tab_columns.data_type
  ,user_tab_columns.data_length
  ,user_tab_columns.data_precision
  ,user_tab_columns.data_scale
  ,user_tab_columns.nullable
from
  user_tab_columns
 ,user_tab_comments
 ,user_col_comments
 ,(
    select
       user_ind_columns.table_name  as table_name
      ,user_ind_columns.column_name as column_name
    from
       (select * from user_indexes where index_type = 'NORMAL' and uniqueness = 'UNIQUE') user_indexes
      ,user_ind_columns
    where
      user_indexes.index_name = user_ind_columns.index_name
  ) user_pk
where
      user_tab_columns.table_name  = user_tab_comments.table_name
  and user_tab_columns.table_name  = user_col_comments.table_name
  and user_tab_columns.column_name = user_col_comments.column_name
  and user_tab_columns.table_name  = user_pk.table_name(+)
  and user_tab_columns.column_name  = user_pk.column_name(+)
order by
   user_tab_columns.table_name
  ,user_tab_columns.column_id