本文共 991 字,大约阅读时间需要 3 分钟。
下面实例是为数据库当前用户中所有表名称含有'_OPT'的表,新增'IMPORT_DATE'字段,并添加字段注释'入库日期'。
declare --需要执行的SQL字符串 v_alter_sqlstr varchar2(500); -- 游标 cursor c_result is select 'alter table ' || t.OBJECT_NAME || ' add IMPORT_DATE date default sysdate; comment on column ' || t.OBJECT_NAME ||'.IMPORT_DATE is ''入库日期''; ' as alter_sqlstr from user_objects t where t.OBJECT_TYPE='TABLE' and t.object_name like '%_OPT'; -- 定义一个与游标一样的变更 v_result c_result%rowtype;begin open c_result; loop fetch c_result into v_result; exit when c_result%notfound; v_alter_sqlstr := v_result.alter_sqlstr; dbms_output.put_line(v_alter_sqlstr); -- 可单独将SQL从output窗口提取出来执行 -- 执行修改 --execute immediate v_alter_sqlstr; end loop; close c_result;exception when others then begin dbms_output.put_line('异常:' || 'sqlcode:' || sqlcode || ' sqlerrm : ' ||sqlerrm ); end; end;
可以直接执行上面的SQL语句为表添加字段,也可以将需要执行的SQL语句打印出来,单独执行。
建议先将要执行的SQL语句打印出来,看下没有问题再手动执行SQL脚本,这样保险些。
转载地址:http://ncdrz.baihongyu.com/