当前位置:数据库 > Oracle >>

oracle删除已存在的表

oracle删除已存在的表
 
查询系统表,判断表是否存在,存在则直接删除
  www.zzzyk.com  
Sql代码  
select count(*) from user_objects where object_name=upper(p_table_name);  
select count(*) from user_tables where table_name=upper(p_table_name);  
  
create or replace procedure p_drop_table_if_exist_v1(  
p_table_name in varchar2  
) is  
v_count number(10);  
begin  
select count(*)  
into v_count  
from user_objects  
where object_name=upper(p_table_name);  
if v_count > 0 then  
execute immediate 'drop table ' || p_table_name || ' purge';  
end if;  
exception  
when no_data_found then  
    begin  
        null;  
    end;  
end;  
/   
  
create or replace procedure p_drop_table_if_exist_v2(  
p_table_name in varchar2  
) is  
v_table_name varchar2(20);  
begin  
select table_name   
into v_table_name   
from user_tables   
where table_name=upper(p_table_name);  
if length(v_table_name)>0 then    
execute immediate 'drop table ' || p_table_name || ' cascade constraints';   
end if;  
  
exception  
when no_data_found then  
    begin  
        null;  
    end;  
end;  
/   
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,