最近开发中,有一个场景,需要给数据库中的表添加注释,完善表的数据库字典。但是表的数量很多,于是本人就写了个动态生产的脚本,具体如下:
declare
v_owner varchar2(100);
v_column_name varchar2(100);
v_comments varchar2(100);
v_tablename varchar2(100);
v_sql varchar2(2000);
cursor p_column_name is
select owner,column_name,comments,table_name
from all_col_comments a
where a.table_name='BANK_TABLE' and a.comments is null;
begin
OPEN p_column_name;
LOOP
FETCH p_column_name INTO v_owner,v_column_name,v_comments,v_tablename;
EXIT WHEN p_column_name%NOTFOUND;
select ' COMMENT ON COLUMN '||v_owner||'.'||v_tablename||'.'||v_comments||' IS '||' '||v_column_name'' into v_sql from dual;
dbms_output.put_line(v_sql);
-- COMMENT ON COLUMN v_owner.MAINT_FEE.v_comments IS v_column_name;
END LOOP;
CLOSE p_column_name;
end;
这样我们在输出的窗口就可以看到动态打印的sql了,当然场景依次推广到update、insert、delete 等语句。对于上述过程中的表名称,当前是只展示了一个表的写法,如果是批量只需要将表名导入另外一张表,然后再循环套一层即可。
版权声明:本文为LB_Captain原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。