在使用exp/imp时如何实现导入数据到指定的表空间

经常会有这种情况,从某数据库中的A表空间导出数据文件,在导入另一个数据库是由于某种规范或原因需要导入数据到B表空间,Oracle似乎对这种情况没有处理,exp的参数中没有相关选项,导出的文件使用文本编辑器打开可以明显的看到原有表空间的名字

我们可以现在目标数据库建立相同的表空间,导入数据后将table和index move到指定表空间,但是lob的index是无法移动的,所以不能彻底解决问题

今天发现了一个简单的方法,可以实现简单易行:

  1. 首先按照正常操作导出数据文件
  2. 然后使用VIM打开数据文件,不能用普通的文本编辑器或emedit,ut等,那会破坏文件结构
  3. 使用如下命令替换表空间名称-- :%s/TABLESPACE "A"/TABLESPACE "B"/g
  4. 保存推出
  5. 使用imp命令导入到目标数据库中(目标数据库必须有B表空间)

经测试,数据导入到B表空间后运行正常

posted @ 2011-05-09 21:05  池建强  阅读(3545)  评论(0编辑  收藏  举报