truncate table之后,可是数据文件大小仍然没有变。是不是有个reshrink什么的?
没用过。请指教

解决方案 »

  1.   

    也可以用EXP出去再IMP回来,要不高水位降不下来
      

  2.   

    删除了数据肯定也是不能回收一分配的空间的,如果有EXP/IMP的话。
    得先建立初试化表,让它恢复原始的分配空间,再IMP。ROWS=Y。
      

  3.   

    alter database datafile'c:\oracle\the.dbf' resize 150M;alter database tempfile 'f:\oracle\oradata\one\temp01.dbf' resize 100m
      

  4.   

    这里边有两个问题.其中有高水位的标志的问题.
    数据表分配20m .最多一次插入用了12M.高水位标志在此标注.
    然后你把这12M删除了。数据库不回收这部分空间.(还是占用20
    M)
    a. DBMS_SPACE.UNUSED_SPACE查看一下这个高水位标志.
    用alter table 表名 deallocate unused keep xM.回收高水位之上的8
    M空间.
    b.可以truncate table重建表.清除水位标志以下的12M.当然可以alter table 表名 move 移动表便可.
      

  5.   

    exp导不出去,同样报ORA08103错误。先谢谢大家的参与与解答。
      

  6.   

    to yangqingdelphi:
    能给我一个具体的操作步骤吗?
    因为我这里的数据比较重要,我怕把数据给弄坏了。