oracle中用一个用户导出的dmp文件中含有多个表空间,怎么用该用户将这个文件再导入数据库

大哥大姐哪位知道,oracle中用一个用户导出的dmp文件中含有多个表空间,怎么用该用户将这个文件再导入数据库
最新回答
幼儿园的小酷比

2024-10-23 01:49:25

按用户导入是有要求的

  1. 导入用户要存在

  2. 要导入的用户表存在且结构与dmp中相同(可以不管表在哪个表空间里),自动建表时会报错:对象已存在。可以用ignore=y忽略,数据会正确导入 

  3. 或者这些表空间存在且有权限和quota,它会自动建立表并导入数据

掌握这三个条件,没有什么用户不能导入的

追问
在导入.dmp 文件时 先要建立表空间用户,但是我这个.dmp文件中有几个表空间,一个用户 ,这个用户只能设置一个默认的表空间;这样我要如何导入呢
追答
需要你先建用户,然后再建这几个表空间,再给这个用户在这些表空间quota或者unlimited tablespace权限,导入就没问题了。
dmp里有建表语句,包含了表空间部分,所以它是不会管你默认表空间是什么,假设你默认表空间是system,而你所有的表都在其它表空间上,你导入时会按照表的原始位置建表,而不会建在你默认表空间的。
夜巴黎

2024-10-23 02:34:15

用如下命令即可:

imp 用户名/密码@实例名称 file=磁盘路径\文件名.dmp fromuser=来自用户的名称 touser=导入到用户的名称
封锁那段记忆

2024-10-23 03:15:46

首先用这个用户登录到oracle数据库。
imp username/pwd@SID file=d:\daochu.dmp
imp username/pwd@SID@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y
或者用plsql中的Tools--import tables --oracle import 选择你的dmp文件导入即可。
追问
在导入.dmp 文件时 先要建立表空间用户,但是我这个.dmp文件中有几个表空间,一个用户 ,这个用户只能设置一个默认的表空间;这样我要如何导入呢
追答
建表空间和用户,要与之相对应。否则数据在导入时会报错。找不到用户或者表空间。