日期:2014-05-16  浏览次数:20667 次

判断所要创建的数据库表是否存在,如果存在就删除该表,然后再在后面的段中创建这些表
--判断所要创建的数据库表是否存在,如果存在就删除该表,然后再在后面的段中创建这些表 
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