我用Enterprise Manager Console 创建了一个表空间hos   ,
创建用户abc ,abc指向hos表空间,
给用户的权限是  connect ,DBA  。我在用如下命令导入数据
imp hosp/his@orcl touser=abc  fromuser=abc file=e:\xx.dmp导入后发现hos空间还是空的,文件却导入到system空间去了怎么回事?难道是导入命令参数写错了??-------------------
问题2
有办法把我导入的错有文件都删除么??就是回滚之类的。

解决方案 »

  1.   

    具有DBA角色的用户有权限写system表空间,主要的问题在于你的原dmp文件是不是来自于system表空间.如果表空间不相匹配,导入时可能会报错.
    对于第二个问题,可以删除,但不能回滚,imp导入后就提交了,即使中间过程中报错了,也不能把前面已导入成功的数据回滚.解决这个问题没必要全删除再重新做一次,可以通过alter table ... move ...到另一个表空间,也就是你建的hos表空间.
      

  2.   

    to zgh2003(世纪飞扬) 
    ----------------------是的,原dmp文件是来自system表空间的,
    这样的话他只能导入到system表空间么??
    有什么办法导入到我指定的表空间中呢??
      

  3.   

    用UE或editplus等文本编辑器打开你的dmp文件
    全部替换:TABLESPACE "system" -> TABLESPACE "hos"
    重新导入即可顺便一问世纪飞扬大哥:在导入导出时指定tablespaces参数实际上没有用是不是?
    因为导出时只能是源库实际表空间,指定别的表空间名字会报错。
    导入时这个参数指定也根本没用,指定和不指定效果都一样,还是导入到和源库表空间一样的表空间下。