ORACLE导入数据库时表空间名字不一样
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE导入数据库时表空间名字不一样相关的知识,希望对你有一定的参考价值。
我有一个DMP文件,要导入到我的库里面,但是要导入的和DMP文件导出时的表空间和用户名字不一样,怎么办?现在我的做法,只有建立一个和DMP文件一样的表空间和用户去导,如果要导入到自己命名的表空间里,应该怎么弄?求教,尽量把步骤说清楚一些,谢谢
首先,收回目的用户的"UNLIMITED TABLESPACE"权限: revoke unlimited tablespace from username; 其次,取消目的用户在原数据导出表空间中的配额,这样才能迫使IMP把数据导入到用户的默认表空间中去。 然后,将希望导入的表空间设为目的用户的默认表空间,并添加配额。 最后,执行IMP 参考技术A 如果imp时指定tables=的话,就会导入到用户默认表空间。如果不指定的话,导出的用户和导入的用户不一样会报错,需要指定from_user, to_user追问
可不可以给个例子呢?from_user,to_user是用户,那表空间名字不一样呢
追答会导入到to_user指定用户的默认表空间里。
所以你把to_user的默认表空间设定为你想导入到的表空间就行了。
能不能说的具体一点?谢谢
追答IMPDP HELP=Y
remap_tablespace=tbs1:tbs2
这种方法要用empdp的方法导出吧,我试了一下,导入之后,数据还有些问题,还要具体研究一下,谢谢了
本回答被提问者采纳oracle导入数据库是出现表空间不存在怎么解决?
表空间和用户以创建都是EMR_WS_TEST,
导入命令是:
IMPDP USERID='EMR_WS_TEST/EMR_WS_TEST@ORCL' schemas=EMR_WS_TEST directory=DATA_PUMP_DIR dumpfile=EMR_WS_TEST.dmp logfile=EMR_WS_TEST.log version= 11.1.0.2.0
执行结果如图:
导入空间是EMR_WS_TEST,与EMR_EMPTY无关,只是之前在PL\SQL中使用过EMR_EMPTY,这次导入EMR_WS_TEST为什么会出现“EMR_EMPTY不存在”?
exp命令导出dmp文件
exp备份数据库中表结构
PL/SQL导出
、imp命令导入dmp文件
mp命令导入表结构
导入csv文件
‘
’
执行命令:sqlldr username/userpasswd@orcl control=F:/test.ctl log=F:/test.log
这个表示导入成功的数据行数。excel数据格式的数据可以通过更换数据格式为csv文件格式,再进行导入操作。
执行imp语句
导入成功后,执行改回原来表空间的名称
你出的这个错误可能是因为你导出的数据中有部分是保存在EMR_EMPTY表空间中的,你新的数据库中没有这个表空间。我建议:
1.你先确定你源数据库中的表空间,然后在目标数据库中创建相同的表空间。
2.或者用remap_tablespace参数来改变目标数据库的表空间。本回答被提问者采纳 参考技术B 比如你原来的表空间是A,想导入到表空间B中,可以用remap_tablespace=A:B来指定。
你出的这个错误可能是因为你导出的数据中有部分是保存在EMR_EMPTY表空间中的,你新的数据库中没有这个表空间。我建议:
1.你先确定你源数据库中的表空间,然后在目标数据库中创建相同的表空间。 参考技术C 1.创建一个同名的表空间。
2. 用tablespaces参数来指定导入的表空间。 参考技术D 创建一个表空间
以上是关于ORACLE导入数据库时表空间名字不一样的主要内容,如果未能解决你的问题,请参考以下文章