Oracle—导入用户名和表空间不同的dmp文件

将dmp格式的文件导入到本地数据库中由于用户和表空间不同,所以在导入的过程中出现很多问题

现在将解决办法分享给大家。

背景:需要将一个数据库中的部分表格导入到本地数据库,由于数据量过大,因此采用导出成dmp的形式,但是在插入的过程中出现了问题,由于用户和表空间不同出现了很多问题。

在使用plsql进行导入的时候,不知道什么原因,数据没有导入进去,只建立了表格,因此采用toad,使用toad进行导入的时候设置了fromuser和touser,用户的问题得到解决,但是由于找不到指定的表空间,所有的数据包括大字段类型全部导入进了user表空间下,由于之前不知道user表空间大小有限,在导入表的时候,导入了一半的时候控制台突然报错:

IMP-00064: 导出已截断 LOB 的定义
IMP-00028: 上一个表的部分导入已回退: 回退 88423 行

当时在网上查的大部分都说是表空间不足的原因,因此查看表空间大小,想对user表空间进行扩容,DBA查看表空间后说,user表空间存放的用户信息,不能存放这些数据,可以存放到其他表空间中。

具体解决办法:

先建表,再导数

1.先在目标数据库中建立表结构,指定表空间和用户

2.再通过imp命令导入dmp文件,注意只导出表的数据,不要表结构了在后面加上 data_only=Y

具体示例:

imp username/[email protected]:11521/bluedb file=H:\Desktop\testdmp\s_test.dmp  fromuser=user1 touser=user2 data_only=y

 

你可能感兴趣的:(Oracle)