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

转自: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 命令

你可能感兴趣的:(数据库,oracle)