网站首页 > 技术文章 正文
简述
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函数。
- 上一篇: 精彩3000字!给讲得明明白白:配置 logback
- 下一篇: 全面解读 Java 日志框架(一)
猜你喜欢
- 2025-05-26 学习HackerOne上Flink、Grafana、jolokia攻击手法
- 2025-05-26 使用ANTLR开发自己的DSL语言(一)
- 2025-05-26 Spring技巧:深入研究Java 14和SpringBoot
- 2025-05-26 Nginx常见问题
- 2025-05-26 MyBatis系列-2-日志配置
- 2025-05-26 免费且好用的乐谱制作软件
- 2025-05-26 进阶版Python正则表达式大全,看到就赚到了
- 2025-05-26 让你把DeepSeek不借助插件装进WPS中 WPS接入DeepSeek人工智能
- 2025-05-26 在word中通过VBA调用百度翻译API在线翻译
- 2025-05-26 Java文件读取终极指南:4种方式对比与性能优化实战
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)