假设数据用户USER1使用默认表空间TS1,用户USER2使用默认表空间TS2,现在将USER1的数据导入到USER2,要求使用表空间TS2。
通过IMP命令参数tablespaces指定表空间是不行的。
这时有一个简单的方法,适用于数据比较少的情况:直接使用UltraEdit打方DMP文件,默认是16进制。
通过编辑栏—》切换十六进制模式,以字符串的方式展示
通过Ctrl+F将里面的:TABLESPACE "TS1"全部替换成TABLESPACE "TS2",然后再导入
不用加什么tablespaces=TS2之类的参数即可,当然加了也无所所谓。
C:\>IMP USER2/USER2 log=C:\plsimp.log file=D:\database\USER1.dmp fromuser=USER1 touser=USER2 ignore=yes tablespaces=TS2
注意:在执行导入的过程中仍然可能会提示用户不正确,按照类似的方法将用户替换成目标用户即可。