首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

导错表空间

2014-01-28 
导错表空间应该怎么处理?我用Enterprise Manager Console 创建了一个表空间hos, 创建用户abc ,abc指向hos表

导错表空间应该怎么处理?

我用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参数实际上没有用是不是?
因为导出时只能是源库实际表空间,指定别的表空间名字会报错。
导入时这个参数指定也根本没用,指定和不指定效果都一样,还是导入到和源库表空间一样的表空间下。

        

热点排行