龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

oracle删除已存在的表的实例

时间:2014-05-20 02:04来源:网络整理 作者:网络 点击:
分享到:
查询系统表,判断表是否存在,存在则直接删除
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; 
/  
精彩图集

赞助商链接