您的位置:首页 > 数据库 > Oracle

oracle 11g 无法导出空表解决方法

2014-06-20 10:18 344 查看
开门见山,首先使用SQL语句查询出哪些表为空表,

select table_name from user_tables where NUM_ROWS=0;

检查并确认这些表是否包含在要exp中的表,如果需要.接下来执行这句SQL:

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

查询结果类似:



将查询结果选中copy并past,执行这些语句,执行成功完成后,再通过exp操作,可看到有表为0行数据的导出.说明执行成功.

再来说一下原因,11g 默认对空表不分配segment,所以exp时,空表不会导出.

接下来,我们可以设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment,SQL语句如下:

alter system set deferred_segment_creation=false;

该参数设置以后,只会对新增的表产生作用,我们之前创建的空表是不起作用滴

.所以我们只需要执行这些操作,以后不管是以前的表,还是新创建的表,都可以通过exp进行导出成功了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: