在使用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 @   池建强  阅读(3638)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示