在SQLServer中,判断一个表是否存在,如存在删除,在创建表,在Orcale中如何执行这步操作,代码:
在SQLServer中
-- 判断表是否存在,如存在删除
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME = '该表')
DROP TABLS '该表'
GO
-- 创建表
CREATE TABLE '该表'()在Oracle中?????????????

解决方案 »

  1.   

    --oracle中也是一样的,只不过放的地方不同:select table_name from user_tables; //当前用户的表       select table_name from all_tables; //所有用户的表   select table_name from dba_tables; //包括系统表select table_name from dba_tables where owner='用户名'
      

  2.   

    试了 不行 会报错说是无效的sql语句
    代码如下:
    -- 创建数据库STUDENT并查询
     CREATE TABLE STUDENT(ID INT,NAME VARCHAR2(10))
     SELECT * FROM STUDENT
    GO
    -- 判断是否存在 如存在删除
    IF EXISTS (SELECT STUDENT FROM ALL_TABLS)
       DROP TABLES SUDENT
    GO
      

  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;
      

  4.   

    create or replace procedure proc_dropifexists(p_table in varchar2)  
    用powerdesigner生成脚本都是这么建表的
      

  5.   

    create or replace table XXXXX