原数据库由于使用了好几年,已经有上百G的数据了。现在想另外创建一个测试的不含数据的同质数据库,用exp rows=0导出了不含数据记录的某个schema,导出文件也不大,但在新数据库导入该schema时,却发现oracle在不断吞噬硬盘,最终占用的空间跟原数据库几乎一样大,尽管其中并没有数据。感觉是因为导出时,oracle将数据表的存储空间属性一并导出了。请问怎样才能制作出一个不含数据记录的导出文件,使得其在导入到新数据库时不会占用无谓的空间?另外,当我将某个schema的导出文件导入到另一个数据库的同一个schema时,发现导出文件中更新版本的数据表触发器,数据包和java等并没有覆盖掉目标数据库中较旧的版本。不知如何设置?请各位不吝赐教,多谢!

解决方案 »

  1.   

    你不要表数据的话,你在plsql里面,用export userobjects的方式导出所有建用户对象sql脚本就行了啊。然后在plsql里面用imp sql导入所有建用户对象sql脚本,就好了。
      

  2.   

    你在导入的时候也指定一下rows=n不知道你exp的时候,改成exp rows=n
      

  3.   

    oraclemch,你好,我一直是用toad,其导入导出感觉应该是直接调用了oracle的imp/exp,没用过pl/sql developer,它的导入导出是用别的方式么?导入时不会创建大空间的空表?
    inthirties,你好,我在导出的时候就是指定了rows=n,上面写错了,导入的时候也指定了rows=n,不行啊:(另外,如何将导出的更新版本的触发器,数据包和java对象等覆盖掉另一数据库中旧版本呢?
      

  4.   


    plsql导出的时候,不会建大空间的空表的,都是建表语句,里面没有数据啊!