oracle11g无法导出空表问题

  • Post author:
  • Post category:其他



产生原因:oracle11g为了节约空间,对空表不分配segment


解决方法:



方法1.


用如下语句设置空表可导出:

alter system set deferred_segment_creation=false

注意:该值设置后需重新启动数据库,让参数生效。并且该值只对后面新增的表产生作用,对之前建立的空表不起作用,仍不能导出。


方法2.


对需要导出的表插入一条数据再删除,此时该表就产生segment,再导出时就可以成功导出。


方法3.


执行sql语句

alter table 表名 allocate extent;

执行后此表可成功导出。

若需要将数据库中的所有空表都导出,可先执行以下语句

 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;

将上面语句查询出的结果进行复制并执行后 这些空表即可成功导出。



版权声明:本文为weixin_43567883原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。