Select O.table_name, Tmp.comments, O.column_name, T.comments, O.data_type
|| Case TRIM (O.data_type)
When the ' DATE ' then
‘‘
When ' number ' then
Case if o.data_precision is isn't null then
' (' | | | o.data_precision | | ', ' | | O.data_scale | | ‘)‘
Else ' End
When the ' CHAR ' then
' (' | | | o.data_length | | ‘)‘
When the ' VARCHAR2 ' then
' (' | | | o.data_length | | ‘)‘
END as Data_type,
O.nullable,
O.SEGMENT_COLUMN_ID,
Const. COLUMN_NAME,
Case is Const. COLUMN_NAME is null and then ' N ' Else ' Y ' end as PI
From User_tab_cols o
INNER JOIN user_col_comments T on (T.table_name=o.table_name and T.column_name=o.column_name)
Left join (select T.table_name, c.comments
From User_tables t
Left JOIN User_tab_comments C
On t.table_name = c.table_name) tmp
On o.table_name = Tmp.table_name
Left join (select Cs.table_name,cs.column_name from User_cons_columns CS,
User_constraints UC
where Cs.constraint_name=uc.constraint_name
and uc.constraint_type= ' P '
) const
On (O.column_name=const.column_name and O.table_name=const.table_name)
where O.table_name in (' TEST1 ')
Order by O.table_name, o.segment_column_id
Oracle Query Table Structure statement