解决Oracle备份时,无法备份空表的问题

为什么存在空表无法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;

3、将查询结果全选,右键复制后,粘贴到新的SQL Window执行即可。

仅做交流参考。
原文地址:https://www.cnblogs.com/YoungVin/p/12981138.html