只有一台电脑,xp sp2 + oracle 9i
建有两个表空间(A,B),两用用户(A,B),A用户默认表空间为A,B用户默认表空间为B,权限都为RE要RESOURCE和UNLIMITED TABLESPACE
从A导出来
EXP A/A@ORCL FILE=D:\A.DMP LOG=A.LOGIMP B/B@ORCL FILE=D:\A.DMP LOG=B.LOG FROMUSER=A TOUSER=B结果,数据全部到了表空间A里,是不是我弄错了什么,有什么方法可以导到表空间B里?

解决方案 »

  1.   

    数据到A表空间很正常的,你没有错,你数据是从A表空间exp出来的,当你imp的时候(B用户),会现在找A表空间是否存在,如果A表空间存在的话,数据就到A表空间,如果A表空间不存在,那么就会到B用户的Default tablespace里面!
    可以先吧A表空间rename一下,
    其实你可以完全在A表空间move一下到B表空间
      

  2.   

    方法有很多种!!!
    1、按照楼上说的做!!!
    2、Imp后,使用Alter Table或Alter Index语句叫数据和索引移到指定的表空间!!!
    3、先创建用户的数据对象,然后再运行Imp也可以达到你想要的效果!!!需要注意的是使用Imp时要使用参数IGNORE=Y!!!