日期:2014-05-17  浏览次数:20781 次

求助:判断表tb是否存在,存在则删除
oracle 求在一条脚本中,判断表tb是否存在,存在则删除

是在一条脚本脚本中,就是说只能有一个分号;

------解决方案--------------------
用动态语句吧 EXECUTE IMMEDIATE
------解决方案--------------------
oracle中不好写吧

mysql和sqlserver到是可以
------解决方案--------------------
自己写个存储过程,具体查询表是否存在可参考select count(1) from user_tables where table_name='表名'; 
------解决方案--------------------
引用:
oracle中不好写吧

mysql和sqlserver到是可以


楼主想用一个分号就搞定,我觉得是不可能的,如下可以参考:

--判断表是否存在,如果存在则删除
declare 
      num   number; 
begin 
      select count(1) into num from user_tables where TABLE_NAME = 'EMP';
      if   num=1   then 
          execute immediate 'drop table EMP'; 
      end   if; 
end; 


------解决方案--------------------
直接 drop table tb;
存在则删除,不存在就报错,你可以后续捕捉异常