我用PL/SQL导出数据,查看导出文件发现如下现象
create table 表1
(
  --字段1
  --字段2
  --字段3
  --字段4
  .......  
)
tablespace MIS
  pctfree 10
  pctused 40
  initrans 1
  maxtrans 255
  storage
  (
    initial 32360K----新创建的无任何数据的测试表是50K
    next 16182K----新创建的无任何数据的测试表是50K
    minextents 1
    maxextents unlimited
    pctincrease 50
  );
4.我估计一下,这么多的initial加起来就差不多600M了,所以我想只要将initial都减小就行了
问题是要是手工改的话表太多不太现实,有没有什么方法,统一改??

解决方案 »

  1.   

    SQL> ALTER DATABASE DATAFILE 'D:\ORANT\DATABASE\BASE\YYMIS1.ORA' RESIZE 500M
      2  ;
    ALTER DATABASE DATAFILE 'D:\ORANT\DATABASE\BASE\YYMIS1.ORA' RESIZE 500M
    *
    错误位于第1行:
    ORA-03297: 文件包含21386块高于请求 RESIZE 值的数据
      

  2.   

    上次提问问题请参考:
    http://expert.csdn.net/Expert/topic/1943/1943230.xml?temp=.7735865
      

  3.   

    it's easy to specify the follow option at time of exportcompress = Y then your problem can be solved
      

  4.   

    不需要将数据库文件一并分发。
    1。将你的exp文件拷贝到光盘,制作一个程序脚本实现exp文件的导入imp。
    2。最终用户安装oralce后,建立数据库,然后执行你的导入脚本文件即可。
    oracle数据库不是一般的小型桌面文件型数据库。不要企图拷贝数据库文件给用户。这样的最法是坚决不可取的。
    3。如果exp文件较大可以compress=Y,不过我想一般的软件不会有这样大的数据量(导出后600M)。
    4。如果导出后的文件真有600M,那只能将这个文件单独放到一张cd了。