Oracle数据库使用存储过程,批量生产数据库注释脚本

最近开发中,有一个场景,需要给数据库中的表添加注释,完善表的数据库字典。但是表的数量很多,于是本人就写了个动态生产的脚本,具体如下:


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 等语句。对于上述过程中的表名称,当前是只展示了一个表的写法,如果是批量只需要将表名导入另外一张表,然后再循环套一层即可。

猜你喜欢

转载自blog.csdn.net/LB_Captain/article/details/120964452