SELECT mdata.table_name, mdata.column_name, mdata.data_type,mdata.data_length,mdata.data_precision,mdata.data_scale, mdata.comments, CASE mdata.nullable WHEN NULL THEN '非空' ELSE '' END AS nullable,edata.keytype FROM( SELECT utc.table_name, utc.column_name, utc.data_length,utc.data_precision,utc.data_scale, utc.data_type,ucc.comments,utc.nullable FROM user_tab_columns utc,user_col_comments ucc WHERE utc.table_name = ucc.table_name AND utc.column_name = ucc.column_name ) mdata,( SELECT ucc.table_name,ucc.constraint_name,ucc.column_name, case uc.constraint_type WHEN 'P' THEN '主键' ELSE '' END AS keytype FROM user_cons_columns ucc,user_constraints uc WHERE ucc.constraint_name = uc.constraint_name ) edata WHERE mdata.table_name = edata.table_name(+) AND mdata.column_name = edata.column_name(+)