按用户导入是有要求的
导入用户要存在
要导入的用户表存在且结构与dmp中相同(可以不管表在哪个表空间里),自动建表时会报错:对象已存在。可以用ignore=y忽略,数据会正确导入
或者这些表空间存在且有权限和quota,它会自动建立表并导入数据
掌握这三个条件,没有什么用户不能导入的
追问在导入.dmp 文件时 先要建立表空间用户,但是我这个.dmp文件中有几个表空间,一个用户 ,这个用户只能设置一个默认的表空间;这样我要如何导入呢
追答需要你先建用户,然后再建这几个表空间,再给这个用户在这些表空间quota或者unlimited tablespace权限,导入就没问题了。
dmp里有建表语句,包含了表空间部分,所以它是不会管你默认表空间是什么,假设你默认表空间是system,而你所有的表都在其它表空间上,你导入时会按照表的原始位置建表,而不会建在你默认表空间的。
用如下命令即可:
imp 用户名/密码@实例名称 file=磁盘路径\文件名.dmp fromuser=来自用户的名称 touser=导入到用户的名称在导入.dmp 文件时 先要建立表空间用户,但是我这个.dmp文件中有几个表空间,一个用户 ,这个用户只能设置一个默认的表空间;这样我要如何导入呢
追答建表空间和用户,要与之相对应。否则数据在导入时会报错。找不到用户或者表空间。