oracle快速为所有表新增字段
程序员文章站
2024-03-24 18:37:34
...
下面实例是为数据库当前用户中所有表名称含有'_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脚本,这样保险些。
上一篇: idea一些常用功能快捷键