oracle 如何批处理清空多个表,保留表结构。

来源:互联网 发布:ff14人男捏脸数据 编辑:程序博客网 时间:2024/05/01 10:29

现在测试库有400多个表需要反复清空,用于测试。我在PL/SQL中只能单条用
truncate table1;
truncate table2;
truncate table3;
truncate table4;
......
一次只能选定一条执行,选定多条执行报错,能否写个存储过程,或者批处理,清空时执行下就可以了。

 

 begin
for c in(select t.constraint_name, t.table_name
  from USER_CONSTRAINTS t
where t.constraint_type = 'R') loop
EXECUTE IMMEDIATE 'alter table  '  ||c.table_name|| '  DISABLE CONSTRAINT '||c.constraint_name;
end loop;
for c1 in(select table_name from user_tables) loop
  EXECUTE IMMEDIATE 'truncate table '||c1.table_name;
end loop;
for c2 in(select t.constraint_name, t.table_name
  from USER_CONSTRAINTS t
where t.constraint_type = 'R') loop
EXECUTE IMMEDIATE 'alter table  '  ||c2.table_name|| '  ENABLE CONSTRAINT '||c2.constraint_name;
end loop;

end;

原创粉丝点击