oracle数据从一个表空间导入到另外一个表空间

问题:在使用exp导出用户数据后,再使用imp导入时,必须保证两者对象的表空间一致才能成功导入

在此分享一点解决办法:

 

 

  1. exp导出用户数据: exp userid=user/user owner=user file=user.dmp
  2. 导出表DDL:打开pl/sql运行菜单:“工具”->“导出用户对象”功能, 选择所有的表,不选择存储,导出为文user_tables.sql
  3. 创建表结构:使用目标用户登陆pl/sql后,执行:user_tables.sql
  4. 删除约束SQL:

 

select 'ALTER TABLE ' || OWNER || '.' || table_name || ' drop CONSTRAINT ' || constraint_name || ' cascade;' 
from dba_constraints dc where dc.owner='USER';
-- 生成删除主,外建的代码,复制出来 执行即可删除约束

 

  1. 删除索引:
    select 'drop index ' || owner || '.' || index_name || ' ;' from dba_indexes di where di.owner='USER' AND DI.TABLE_TYPE='TABLE' AND di.UNIQUENESS!='UNIQUE' order by di.table_name, di.index_name;
    -- 查询后,复制出来,执行后就可以禁止索引
     
  2. 导入数据: imp userid=other/other fromuser=user touser=other  ignore=y indexes=n constraints=n buffer=102400000 feedback=1000000 file=user.dmp
  3. 重建约束(包括:主键、外键)和索引:运行users_tables.sql即可<--因为之前删除掉了原来的约束和索引
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值