专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

记Oracle中快速获取表及其各个字段注释的方法

ins518 2024-10-16 12:24:49 技术文章 17 ℃ 0 评论

简述

java开发中,用过JPA的道友应该知道,我们可以通过写java代码自动生成对应的数据表;但这有个问题是,列名的注释并没有帮我们一起添加到数据库去,尤其在一些开发测试生产三个环境隔离的,就很不友好了,开发人员给开发环境挨个添加注释后却难以导到测试生产去。下面就利用Oracle的系统表整理一套方法出来。

实践

前置条件

用Oracle的XMLAGG、XMLPARSE函数及其user_tab_comments表、user_col_comments表

--获取表名注释
SELECT XMLAGG(XMLPARSE(CONTENT 'COMMENT ON TABLE ' || table_name || ' IS ''' || comments || ''';' || CHR(10) WELLFORMED) ORDER BY 1).GETCLOBVAL() as cmmm
FROM user_tab_comments
WHERE table_name in (SELECT t.TABLE_NAME FROM user_tables t where lower(t.TABLE_NAME) like '批量时这里写你的过滤条件');
--获取字段注释
SELECT XMLAGG(XMLPARSE(CONTENT 'COMMENT ON COLUMN ' || table_name || '.' || column_name || ' IS ''' || comments || ''';' || CHR(10) WELLFORMED) ORDER BY 1).GETCLOBVAL() as cmmm
FROM user_col_comments
WHERE table_name in (SELECT t.TABLE_NAME FROM user_tables t where lower(t.TABLE_NAME) like '批量时这里写你的过滤条件');

注意SQL中的CHR(10),这是Oracle的特殊换行符,这两SQL最后会得到一个CLOB类型的大文本;当然若你觉得你的注释不会有很多,你也可以用listagg代替XMLAGG函数。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表