作者:雅婷婉君323 | 来源:互联网 | 2023-05-18 09:28
经常会有这种情况,从某数据库中的A表空间导出数据文件,在导入另一个数据库是由于某种规范或原因需要导入数据到B表空间,Oracle似乎对这种情况没有处理,exp的参数中没有相关选项,导出的文件使用文本编
经常会有这种情况,从某数据库中的A表空间导出数据文件,在导入另一个数据库是由于某种规范或原因需要导入数据到B表空间,Oracle似乎对这种情况没有处理,exp的参数中没有相关选项,导出的文件使用文本编辑器打开可以明显的看到原有表空间的名字
我们可以现在目标数据库建立相同的表空间,导入数据后将table和index move到指定表空间,但是lob的index是无法移动的,所以不能彻底解决问题
今天发现了一个简单的方法,可以实现简单易行:
- 首先按照正常操作导出数据文件
- 然后使用VIM打开数据文件,不能用普通的文本编辑器或emedit,ut等,那会破坏文件结构
- 使用如下命令替换表空间名称-- :%s/TABLESPACE "A"/TABLESPACE "B"/g
- 保存推出
- 使用imp命令导入到目标数据库中(目标数据库必须有B表空间)
经测试,数据导入到B表空间后运行正常