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.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐