判断所要删除的表是否存在的PL/SQL脚本

我们在ORACLE数据库中创建表的时候,对于已经存在的表,我们一般的做法是先删除再创建。
这里提供一个判断所要创建的表是否已经存在,如果存在就删除的脚本。


--判断所要创建的数据库表是否存在,如果存在就删除该表,然后再在后面的段中创建这些表
declare
TYPE table_name_Type IS RECORD ( A varchar2(100) );
type valtal is table of table_name_Type index by varchar2(100);
tarr valtal;
n number;
t_name varchar2(100);
begin
--在这里添加上要删除的表
tarr(1).A :='ABC001';
tarr(2).A :='ABC002';
tarr(3).A :='ABC003';
tarr(4).A :='ABC004';
tarr(5).A :='ABC005';
--删除表的部分结束

FOR i IN 1..tarr.count LOOP
t_name:=tarr(i).A;
select count(*) into n from user_tables where table_name=upper(t_name);
if n>0 then
execute immediate 'drop table '||t_name||' cascade constraints';
end if;
END LOOP;
tarr.delete;
end;

--END drop table


-----
这个脚本,只要维护表名即可,其他部分不用修改。
删除部分结束后,就可以按正常流程贴创建表的语句了
执行的时候,删除与创建要分开执行。
希望能对大家有用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值