SELECT
table_name,
lower( temp.column_name ) AS column_name,
( CASE WHEN ( temp.nullable = ‘N’ AND temp.constraint_type != ‘P’ ) THEN ‘1’ ELSE NULL END ) AS is_required,
( CASE WHEN temp.constraint_type = ‘P’ THEN ‘1’ ELSE ‘0’ END ) AS is_pk,
temp.column_id AS sort,
temp.comments AS column_comment,
( CASE WHEN temp.constraint_type = ‘P’ THEN ‘1’ ELSE ‘0’ END ) AS is_increment,
lower( temp.data_type ) AS column_type
FROM
(
SELECT
col.table_name,
col.column_id,
col.column_name,
col.nullable,
col.data_type,
colc.comments,
uc.constraint_type,
row_number ( ) over ( partition BY col.column_name ORDER BY uc.constraint_type DESC ) AS row_flg
FROM
user_tab_columns col
LEFT JOIN user_col_comments colc ON colc.table_name = col.table_name
AND colc.column_name = col.column_name
LEFT JOIN user_cons_columns ucc ON ucc.table_name = col.table_name
AND ucc.column_name = col.column_name
LEFT JOIN user_constraints uc ON uc.constraint_name = ucc.constraint_name
) temp
WHERE
temp.row_flg = 1
and temp.comments like ‘%出%’
ORDER BY
temp.column_id