急!如何通过卸库和装库命令实现把用户的对象从一个表空间移动到另一个表空间?

appletalk 2003-04-02 06:56:27
在我的旧数据库里用户对象存放比较乱,很多表建在系统表空间里,但是这些表的用户的指定表空间并不是系统表空间,我想把它们都移动到另一个表空间中,我用了下面的卸库命令:
exp system/12345@lpf file=d:\***.dmp log=d:\***.log full=y

然后我在另一个数据库中建立了一个表空间,并在此表空家中新建了用户a,b,然后用下面的装库命令:

IMP SYSTEM/MANAGER@999 FILE=D:\***.DMP FROMUSER=(a,b) TOUSE=(a,b) LOG=***.LOG
但是,等我装库完毕后,发现a用户的某些表仍然在新数据库的系统表空家中,这是怎么回事啊?
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenzhulz 2003-04-05
  • 打赏
  • 举报
回复
楼上的主意是个好主意!!
FoolBoy 2003-04-02
  • 打赏
  • 举报
回复
嘿嘿,遇到这种情况,我都是用ultraedit的正则表达式替换工具直接修改expdat.dmp文件,将原来的表空间名改为新表空间名,然后直接imp即可:)
penitent 2003-04-02
  • 打赏
  • 举报
回复
ALTER TABLE table_name MOVE TABLESPACE new_tablespace
可以移动大部分表了,但是不能移动含有long long raw类型的表
如果你要用imp。请先指定用户配额
revoke unlimited tablespace from username;
alter user username quota unlimited on tablespace;
wenzhulz 2003-04-02
  • 打赏
  • 举报
回复
当然了,imp的时候用的create table是原来库上的,也就是说原来库上在那个表空间上,现在还在哪个表空间。
这个问题,你不必采用这种方法,可以使用:
ALTER TABLE table_name MOVE TABLESPACE new_tablespace

完整信息参考 oracle 文档中的 alter table 语句。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧