我创建了一个datafile文件,现在我不想删除表空间,只删除datafile文件,该如何操作!???
alter database datafile 'd:\WG_HH1.ORA' offline drop;
可以删除,在oralce里看,文件是变小了!可是在操作系统里却还是保存着原来的大小!如果在操作系统里直接删除了,以后开启数据库的时候,连接表空间就会脱机。如何操作可以在系统里彻底删除呢?且在select name from v$datafile;也不在找的到!!!!!!

解决方案 »

  1.   

    DRSYS表空间,为什么有约束不能删除?如果想删除,该如何?
      

  2.   

    那个datafile文件应该不是唯一的表空间对应的数据文件,对巴.
    你必须删除datafile所在的表空间。用drop选项,datafile任然保留在数据字典中,状态为recover 或者offline。 
     
    alter database datafile ...offline drop; 
    一旦数据文件offline,oracle不再访问那个datafile, 但是它仍然是那个表空间的一部分。  
    如果你真的想删除创建的datafile文件, 你可以用transport tablespace特性, 或者导出你想要保存的tablespace空间的object,重新建立一个new tablespace
      

  3.   

    2. 如果这个数据文件还没有分配空间,你可以使用
    ALTER DATABASE DATAFILE <filename> RESIZE;命令使其小于5个 Oracle块大小,如果数据文件的大小小于这个,Oracle将不会进行扩展数据文件。在以后,Oracle可以重建的时候来剔除这个不正确的文件。
      

  4.   

    “DRSYS表空间,为什么有约束不能删除?如果想删除,该如何?”
    ------------------------------
    确认以下:
    1.假如这个表的主键有被其他表做为外键的话就不能删除
    2.应该先要删除主键约束的巴(这一点没试过,楼主可以try一下)
      

  5.   

    zhaokeke2004(大力):
    首先感谢你的回答!好久没见到你了!祝你新年快乐!
    关于你说的前两点,我在论坛上看到了,确实是这样,不只oracle公司有没有这样的技术,顾上来在请教一下!
    关于:
    “DRSYS表空间,为什么有约束不能删除?如果想删除,该如何?”
    ------------------------------
    确认以下:
    1.假如这个表的主键有被其他表做为外键的话就不能删除
    2.应该先要删除主键约束的巴(这一点没试过,楼主可以try一下)这一点,我有点奇怪,不知道DRSYS表空间做什么用的?为什么会有约束呢?如果确实是外键引起的,那管理上是有点难道,但是着是个系统表,应该不会存在这样的情况吧!
      

  6.   

    用exp导出表空间的数据,然后drop掉表空间,然后删掉数据文件再运行一下创建表空间的命令文件,imp就可以了
      

  7.   

    To wupangzi(无本之木):
    oracle中好像没什么好的办法,应该表空间和数据文件是属于一个逻辑上的整体,数据文件很难单独分开的.至于DRSYS表空间,不太清楚其用途,ORACLE中默认应该没有这个表空间巴.
      

  8.   

    刚才找了一下资料,DRSYS表空间是Oracle interMedia文本专用的默认表空间.
      

  9.   

    interMedia是Oracle推出的对Oracle8i多媒体功能的扩充,包括image, audio, video三
    部份。interMedia使用对象类型,类似于JAVA或C++,来描述image, audio, video类型数据
    ,Oracle在这三类对象中定义了许多方法来操作这些数据,如对于 image类型数据来说,你可
    以很方便地进行图形格式转换,压缩,拷贝,截取图形的任何一部份等.
      

  10.   

    不知道,是不是oracle公司是出于恢复方面进行考虑,才不能彻底删除数据文件!