日期:2014-05-17  浏览次数:20722 次

求助oracle 11g的对于空表的问题!
用过oracle 11g导出表的时候,只能导出有数据的表(用过的应该知道吧?)。

查了下资料,说用:

select table_name from user_tables where NUM_ROWS=0;
然后构建一个语句
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

不过发现有些空记录的表并不在里面,然后看了下 num_rows,发现不是为0。原来这个字段不是当前记录的。

然后查了下,说这样的“exec dbms_stats.gather_table_stats(OWNNAME =>'sftlmis_test', TABNAME => 'hwspjc',METHOD_OPT => 'FOR ALL');
 
PL/SQL procedure successfully completed”

但是这样只能对一张表做修改啊,我想对所有空记录的表做修改,请问怎么办?

------解决方案--------------------
把下面sql查出的语句都执行一遍就ok了。。

select 'alter table ' 
------解决方案--------------------
 table_name 
------解决方案--------------------
 ' allocate extent;'
  from user_tables
 where segment_created = 'NO';