这段时间,有个配置库需要导给不同人,每个人导到库后都需要清空里面的各个表,如果逐个表来点的话,挺麻烦的,故写了以下 PL/SQL 脚本。
/**
将所有的 table 清空(可回滚)
**/
declare
-- 指向所有 table 的游标
cursor c_t is
select table_name
from user_tables;
table_name user_tables.table_name%type;
begin
open c_t;
loop
fetch c_t into table_name;
exit when c_t%notfound;
-- 用 delete 而不用 truncate 是为了能户用户回滚,减少误操作
execute immediate 'delete from ' || table_name;
end loop;
close c_t;
end;