网站首页 > 数据库 / 正文
简述
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函数。
Tags:oracle 用户 表
猜你喜欢
- 2024-11-26 一文看懂Oracle数据库表空间设计--ASM/BFT/OMF
- 2024-11-26 Oracle表空间扩容
- 2024-11-26 日常运维笔记--oracle rac表空间扩容问题
- 2024-11-26 Linux日常小技巧Oracle导出表结构
- 2024-11-26 详解Oracle数据库表空间设计--ASM/BFT/OMF综合使用
- 2024-11-26 ORA-01720:不存在SYS.DUAL的授权选项的解决方案
- 2024-11-26 Oracle Database 23ai 中的大文件表空间收缩
- 2024-11-26 从零开始学习Oracle之数据库和数据表的基本操作
- 2024-11-26 Oracle 优化表分区
- 2024-11-26 一文总结ORACLE 两表关联更新常见实现方式