IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME = '表名 ')
     DROP TABLE '该表'
GO
我是学sql的 现要用Oracl数据库 不知道怎么转换 麻烦 帮忙另想问据 Oracl的实例 是不是就是数据库
怎么用Oracl不用建库呢 
原来用SQLServer的时候都是要先Greate DATABASE 的

解决方案 »

  1.   


    declare
        str_tabname        varchar2(2000);
        cursor tablist(tabname varchar2) is 
            select table_name as name
              from tabs
             where instr(upper(tabname), table_name) > 0;
    begin
        str_tabname := 'tabname,TABNAME1,tabname2';
        
        for tab in tablist(str_tabname)
        loop
            execute immediate 'drop table ' || tab.name;
            dbms_output.put_line(tab.name);
        end loop;
    end;
    /
    这个可以一次删除多张表
      

  2.   


    --一样的道理,只不过语法不同而已!
    count = select count(*) from user_tables t where t.table_name='表名'
    下面同你的相同
      

  3.   

    在Oracle 中没有drop table... if exists语法。 所以我们可以在创建表之前用如下存储过程来判断。  
    create or replace procedure proc_dropifexists(p_table in varchar2)  
    is
      v_count number(10);
    begin
      select count(*) into v_count
      from user_tables
      where table_name = upper(p_table);
      if v_count > 0 then
      execute immediate 'drop table ' || p_table ||' purge';
      end if;
    end;