客户要做数据迁移,原数据库中的指定用户所建的表分布在3个不同的表空间中,目标的数据库只建利了一个表空间(表空间名不同于原有的三个表空间名),使用EXP、IMP导出导入后,部分表在导入过程中提示959错误,表空间找不到。更为奇怪的是同时一个表空间的表,有的导入了,有的提示表空间找不到,而无法导入。
请各位高人指点。

解决方案 »

  1.   

    imp有前提条件:exp出来的表所在的表空间必须先创建好
      

  2.   

    提示没有找到表空间的,是不是有blob,clob等字段啊。
      

  3.   

    是有BLOB和CLOB字段有什么问题吗?
      

  4.   

    imp的表空间需要和exp的表空间一致比如:exp的时候,表的表空间是uuusers;
          imp的时候,必须要有表空间uuusers,如果没有需要新建
      

  5.   

    好像可以指定表空间
    imp有TABLESPACES参数,但是不敢保证。没试过!
    试过的做法是把dmp中的某个tablespace名,替换成系统积存的。然后再imp。也是可行的。
      

  6.   

    不可以指定的.不过你可以move过去
      

  7.   

    使用fromuser= touser=的方式imp目标user设置到default tablespace取消目标user的unlimited空间配额,只给目标用户默认表空间的配额
      

  8.   

    但我导出的是用户有多个表空间,再导入时用的fromuser= touser=的方式imp,出错误的表都是含有BOLB或CLOB的表,其它表正常导入到指定的表空间中。我的ORACLE的版本是9.01,有人说是版本问题,10G没有这个问题,不过我没试过。
      

  9.   

    如果有lob的话.得做imp/exp了.按照ningoo的方法可以做.
      

  10.   

    dlczg(火麒麟) ,10G 还是有这个问题的。
      

  11.   

    我刚测试了fromuser= touser=的方式imp
    但还是不行希望高手指点
      

  12.   

    可以把每个表的表空间都创建好,然后把表一个一个导入,之后把所有的表都move到你自己的表空间里去