服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Oracle - oracle删除已存在的表的实例

oracle删除已存在的表的实例

2019-11-20 16:53oracle教程网 Oracle

查询系统表,判断表是否存在,存在则直接删除

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;  
/   

延伸 · 阅读

精彩推荐