Oracle 12数据库批量生成表与字段注释SQL脚本方法咨询
当然不用手动逐个写!Oracle自带的系统数据字典视图能帮你快速生成所有表和字段的注释模板SQL,省超多时间,具体方法如下:
快速生成Oracle表&字段注释模板脚本的方案
1. 生成所有表的注释语句模板
通过查询USER_TABLES视图(如果要处理其他用户的表,换成ALL_TABLES或DBA_TABLES即可),一键生成表注释的基础语句:
SELECT 'comment on table ' || table_name || ' IS '''';' AS table_comment_script FROM user_tables ORDER BY table_name;
执行后,结果集里的每一行就是一个表的注释模板,直接复制出来,只需要在单引号内填充业务注释就行。
2. 生成所有字段的注释语句模板
用USER_TAB_COLUMNS视图(对应其他用户用ALL_TAB_COLUMNS/DBA_TAB_COLUMNS)生成字段级的注释模板:
SELECT 'comment on column ' || table_name || '.' || column_name || ' IS '''';' AS column_comment_script FROM user_tab_columns ORDER BY table_name, column_id;
这个SQL会按表的顺序、字段在表中的定义顺序生成语句,复制后直接填充字段的业务含义即可。
3. 一次性生成完整的注释脚本
如果想直接得到包含所有表和字段的完整脚本,可以把两个查询合并:
-- 生成表注释语句 SELECT 'comment on table ' || table_name || ' IS '''';' AS comment_script FROM user_tables UNION ALL -- 生成字段注释语句 SELECT 'comment on column ' || table_name || '.' || column_name || ' IS '''';' FROM user_tab_columns ORDER BY comment_script;
执行后将结果导出为文本文件,就能批量编辑注释内容了。
实用小技巧
- 先查现有注释避免重复工作:如果部分表/字段已经有注释,可以先导出已有内容,减少重复劳动:
-- 查询表的现有注释 SELECT table_name, comments FROM user_tab_comments WHERE comments IS NOT NULL; -- 查询字段的现有注释 SELECT table_name, column_name, comments FROM user_col_comments WHERE comments IS NOT NULL; - 自动添加字段属性提示:可以把字段的数据类型、长度等信息嵌入模板,让注释更有参考性:
SELECT 'comment on column ' || table_name || '.' || column_name || ' IS ''' || data_type || '(' || data_length || '):'';' AS column_comment_script FROM user_tab_columns ORDER BY table_name, column_id;
这样你就不用手动敲几百条语句,只需要专注于填充业务相关的注释内容就好!
内容的提问来源于stack exchange,提问作者StarsSky




