oracle11g无法导出空表问题

2023-05-16

产生原因: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;

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle11g无法导出空表问题 的相关文章

随机推荐