网站首页 > 技术文章 正文
简述
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种方式对比与性能优化实战
- 1521℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 640℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 527℃MySQL service启动脚本浅析(r12笔记第59天)
- 492℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 492℃启用MySQL查询缓存(mysql8.0查询缓存)
- 479℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 461℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 459℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)