今天在用sqlplus导出oracle数据库数据的时候发现有些表缺失,是因为Oracle 11g的新特性,表数据如果为空,则延迟分配表空间,所以导出的数据不全
解决方法:
--设置立刻分配表空间(设置后,后续新增的表即使没有数据会自动创建表空间,不再延迟创建)
alter system set deferred_segment_creation=false;
--查询当前用户下的所有空表
select table_name from user_tables where NUM_ROWS=0;
-- 根据上述查询,可以构建针对空表分配空间的命令语句,执行下列查询出的语句即可
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;