在Oracle中创建表空间或表的时候能不能写一句判断,如果已存在的话则删除已存在的,创建一个新的,如果没有则直接创建。这样的建表空间或表的语句??

解决方案 »

  1.   

    好比这样(伪代码):
    if exits("tablespace_name") drop tablespace tablespace_name;--如果已存在表空间则删除已存在的
    create tablespace tablespace_name datafile……;--继而创建
    这样的话整个sql文件按一下F8就可以执行到底了,我毕业考试上要用,因为老师说如果一键按下去报错的话就视为考试不及格,汗~网上搜了白天也没好的回答,~只好来求助大家。
      

  2.   

    可以使用plsql代码块declare   v_tablespace varchar2(50);
       i_count      number;
       v_sql        varchar2(4000);begin   select count(t.NAME) into i_count from v$tablespace t where lower(t.NAME) = 'XXXXX';
       
        if (i_count = 1) then 
         
           dbms_output.put_line('xxxx 表空间已经存在!');
        else
           v_sql ='create tablespace xxxx datafile 'xxxxx/xxx/xxx/xxxxx/xxxx.dbf' size xxx ';
           execute immediate v_sql;
           dbms_output.put_line('xxxx 表空间已经创建成功!');    end if;
    end;
      

  3.   

    这句话这样写:
    上面写的有点问题
    v_sql ='create tablespace xxxx datafile ''xxxxx/xxx/xxx/xxxxx/xxxx.dbf'' size xxx ';
      

  4.   

    create or replace table table_name
      

  5.   

    嗯jamig的方法我早试过了不可以,谢谢lkz2004^_^有没有简单点的方法~
      

  6.   

    如果你是对表数据操作可以用merge。
    但你这是创建表空间或表。据我所知只能用plsql实现。2楼+1