欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle获取当前用户表、字段等详细信息SQL

程序员文章站 2022-06-29 14:30:02
做个笔记,仅供参考 select d.table_name tbname,//表名 coalesce(t.comments, ' ') tbdesc, //...

做个笔记,仅供参考

select 
d.table_name tbname,//表名
coalesce(t.comments, ' ') tbdesc, //表注释
a.column_name columnname, //字段名
a.data_type columntype, //字段类型
a.data_length width, //字段长度
a.data_scale precision,//字段小数位

decode(a.nullable,'y','0','1') notnull,//是否允许空
coalesce(m.comments, ' ') comments, //字段备注
decode(k.uniqueness,'unique','1','0') uniques, //是否唯一
coalesce(k.index_name, ' ') indexname,//如果是索引,索引名
decode(k.key,'y','1','0') masterkey//是否主键
from
user_tab_columns a
inner join user_tables d on a.table_name=d.table_name
left join user_tab_comments t on t.table_name=d.table_name
left join user_col_comments m on m.column_name=a.column_name and m.table_name=d.table_name
left join
(
select e.index_name,u.table_name,u.column_name,e.uniqueness,decode(p.constraint_name,null,'n','y') key
from user_indexes e inner join user_ind_columns u on e.index_name=u.index_name
left join ( select constraint_name from user_constraints where constraint_type='p' ) p on e.index_name=p.constraint_name
) k on k.table_name=a.table_name and k.column_name=a.column_name
order by tbname

备注:user_开头是当前用户,all_开头所有用户,dba_开头包括系统表