oracle11g 导出表报EXP-00011:table不存在。

本文介绍了解决Oracle11g中空表备份问题的方法。由于11g默认不为未插入数据的表分配segment,导致使用exp命令备份时出现错误。文章提供了SQL语句来强制分配segment,并针对特殊表提出了直接分配extent的解决方案。

转自:https://blog.csdn.net/mingzaiwang/article/details/52608991?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

 

oracle11g,在用exp命令备份数据库时,如果表中没有数据报EXP-00011错误,对应的表不存在。这导致对应的空表无法备份。 

首先、执行sql语句:

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

然后把执行的结果语句拿到PL—sql当中进行执行!

原因:11g默认创建一个表时不分配segment,只有在插入数据时才会产生(当然也可以强制分配),以节省磁盘空间。

我们这个时候就强制给它分配segment(数据片段)

但是有时候还有一部分表比较特殊的,可能还是会出现对应的表不存在:

那么就直接执行:

alter table 表名(导出出现不存在的表) allocate extent.
 

实在不行,就只能到服务器上用expdp 命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值