删除已存在的表
查询系统表,判断表是否存在,存在则直接删除
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) isv_count number(10);beginselect count(*)into v_countfrom user_objectswhere object_name=upper(p_table_name);if v_count > 0 thenexecute immediate 'drop table ' || p_table_name || ' purge';end if;exceptionwhen no_data_found then begin null; end;end;/ create or replace procedure p_drop_table_if_exist_v2(p_table_name in varchar2) isv_table_name varchar2(20);beginselect 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;exceptionwhen no_data_found then begin null; end;end;/