oracle提取表名和字段名及字段长度
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
oracle提取表名和字段名及字段长度
SELECT
d.TABLE_NAME tbName,--表名
COALESCE(MENTS, ' ') tbDesc, --表注释
a.COLUMN_NAME columnName, --字段名
a.DATA_TYPE columnType, --字段类型
a.DATA_LENGTH width, --字段长度
a.DATA_SCALE precision,--字段小数位
a.DATA_TYPE || '('||a.DATA_LENGTH ||(case when a.DATA_SCALE >=0 then ','||a.DATA_SCALE ELSE '' end)||')',
decode(a.NULLABLE,'Y','0','1') notNull,--是否允许空
COALESCE(MENTS, ' ') 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_n ame,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