为什么存在空表无法exp导出:
如果当前用户下的数据库中存在空表时,执行exp备份时由于该表新建时,并没有向其中插入数据,那么这个表不会立即分配extent,也就是不占数据空间,只有当你insert数据后才分配空间。这样可以节省少量的空间。但是传统的exp就不能将其导出了。
1、查询当前用户下的所有记录数为空的表:
select TABLE_NAME from user_tables t where t.NUM_ROWS = 0 or t.NUM_ROWS is null;
2:生成修改语句,构建如下样子简单的SQL命令:
select 'alter table '||table_name||' allocate extent;' from user_tables t where t.NUM_ROWS = 0 or t.NUM_ROWS is null;