你可以在建表之前先运行Drop table tablename

解决方案 »

  1.   

    没有if exists这样的语句,不过可以这样。Declare
      s integer;
    Begin
      select count(*) into s 
        from user_tables
       where table_name='table_name';  if s>0 then
        execute immediate 'drop table table_name';
      end if;
      
      create table ....;end; 
      

  2.   

    狂晕!!!!!
    不是有create or replace table ...吗?????
    如果存在相同的对象它会自动replace撒,不是更简洁吗
      

  3.   

    还是用 hrb_qiuyb(晨钟暮鼓) 的好了
      

  4.   

    hrb_qiuyb(晨钟暮鼓) 高人用的是 PL/SQL (Oracle 对 SQL 的扩展) 很好~
    Declare
      s integer;
    Begin
      select count(*) into s 
        from user_tables
       where table_name='table_name';  if s>0 then
        execute immediate 'drop table table_name';
      end if;
      
      create table ....;end;
      

  5.   

    哈哈,我认为hrb_qiuyb(晨钟暮鼓)好些
      

  6.   

    Declare
      str varchar2(50);
    Begin
      begin
      str:='drop table mytable';
      execute immediate str;
      exception
      when others then
      goto label;
      end;
      <<label>>
      str:='create table ....';
      execute immediate str;
    end;
    /