日期:2014-05-17  浏览次数:20826 次

急,导入时导错表空间的问题
我用Enterprise   Manager   Console   创建了一个表空间hos       ,
创建用户abc   ,abc指向hos表空间,
给用户的权限是     connect   ,DBA     。

我在用如下命令导入数据
imp   hosp/his@orcl   touser=abc     fromuser=abc   file=e:\xx.dmp

导入后发现hos空间还是空的,文件却导入到system空间去了

怎么回事?难道是导入命令参数写错了??

-------------------
问题2
有办法把我导入的错有文件都删除么??就是回滚之类的。

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

顺便一问世纪飞扬大哥:在导入导出时指定tablespaces参数实际上没有用是不是?
因为导出时只能是源库实际表空间,指定别的表空间名字会报错。
导入时这个参数指定也根本没用,指定和不指定效果都一样,还是导入到和源库表空间一样的表空间下。