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

所属分类: 数据库 / oracle 阅读数: 335
收藏 0 赞 0 分享

做个笔记,仅供参考

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_开头包括系统表

更多精彩内容其他人还在看

oracle快速删除重复的记录

oracle快速删除重复的记录
收藏 0 赞 0 分享

Oracle数据库系统紧急故障处理方法

Oracle数据库系统紧急故障处理方法
收藏 0 赞 0 分享

Oracle SQL性能优化系列学习一

Oracle SQL性能优化系列学习一
收藏 0 赞 0 分享

自动备份Oracle数据库

自动备份Oracle数据库
收藏 0 赞 0 分享

Oracle Index 的三个问题

Oracle Index 的三个问题
收藏 0 赞 0 分享

Oracle 数据库操作技巧集

Oracle 数据库操作技巧集
收藏 0 赞 0 分享

Oracle组件实现动态Web数据库

Oracle组件实现动态Web数据库
收藏 0 赞 0 分享

ORACLE常见错误代码的分析与解决二

ORACLE常见错误代码的分析与解决二
收藏 0 赞 0 分享

ORACLE常见错误代码的分析与解决三

ORACLE常见错误代码的分析与解决三
收藏 0 赞 0 分享

在Oracle 8x实现自动断开后再连接

在Oracle 8x实现自动断开后再连接
收藏 0 赞 0 分享
查看更多