PL/SQL导入/导出dmp文件-Oracle表空间不一致

本文详细介绍了使用PL/SQL工具在Oracle数据库中迁移表结构和数据的具体步骤,特别强调了在不同用户和表空间环境下,避免权限冲突的方法。通过正确设置导出和导入选项,可以有效解决数据导入失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

      今天进行UAT数据还原到SIT时,两个环境Oracle数据库用户和表空间不一致,刚开始没在意,经过一翻反复导入导出发现最终导入的只有表结构,数据始终无法导入。

导入的表结构 .sql文件和表数据 .dmp文件均无问题。

      由于数据库表结构里存在BLOB字段,PLSQL无法导出.sql结果的数据文件,只能通过dmp文件方式导出。经过网上无数PLSQL教程的指导和尝试,发现无法解决此问题。直接敲命令的方式太麻烦没有进行尝试。不得不说还有人转文章更坑,连导出数据的步骤都是错的。下面进入正题。


版本

PL/SQL:  Version 10.0.5.1710 01.706090

DB :Oracle Database 11g Enterprise Edition Release 11.2.0.3.0

执行步骤

a、导出原数据库表结构:PL/SQL –> Tools –> Export User Objects

image_thumb3

    1:这个是所属用户,这个需要修改为默认用户,把原来所属用户去掉

    2:这个选项要去掉


b、导出原数据库表数据:PL/SQL –> Tools –> Export Tables

image_thumb6

   Grants : 授权,如果两边用户不同,这个选项千万不要选,导出的数据重点就在这,只有这个选项会让数据和用户体系有关联。

这样我们需要的表结构和数据都可以导出完成了。由于我们表数据量大,跑一次就得半小时,就这个玩意儿坑了我两个小时。Broken heart


c、导入表结构到新数据库:PL/SQL –> Tools –> Import Tables –> SQL Insert

image_thumb11

这个没什么难度,找对地方、找对文件直接干就能成功了。


d、导入表数据到新数据库:PL/SQL –> Tools –> Import Tables –> Oracle Import

image_thumb12

同样的问题在这个:

Grants: 这个不要选,如果导出的数据里Grants存在,在这导入时不选择是否能成功?由于我这操作麻烦就没有再次尝试了。

Show:这个据说选择了的话,数据就无法导入进去了,没验证,反正也没啥用,就不选了。


总结

小问题也能带来大麻烦,表面看来只是一个选项选择的问题,里面其实涉及含义很多。

1、如果是数据库迁移或者还原,那么Grants这种权限类,表空间类的选项肯定是要选择的。

2、对于不同用户、表数据导入就只关注数据本身,原数据库表的权限之类的属性就会和新表引起冲突导致导入失败。

转载于:https://www.cnblogs.com/laramia/articles/10718147.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值