oracle 求在一条脚本中,判断表tb是否存在,存在则删除是在一条脚本脚本中,就是说只能有一个分号;

解决方案 »

  1.   

    用动态语句吧 EXECUTE IMMEDIATE
      

  2.   

    oracle中不好写吧mysql和sqlserver到是可以
      

  3.   

    自己写个存储过程,具体查询表是否存在可参考select count(1) from user_tables where table_name='表名'; 
      

  4.   


    楼主想用一个分号就搞定,我觉得是不可能的,如下可以参考:--判断表是否存在,如果存在则删除
    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; 

      

  5.   

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