Oracle 11G默认空表不导出解决方案

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:442

Oracle 11G在用export导出时,空表不能导出,11G R2中有个新特性,当表无数据时,不分配segment,以节省空间。
设置deferred_segment_creation 参数,该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。

方法/步骤
1. 修改默认设置语句:alter system set deferred_segment_creation=false scope=both;
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。
2. 如需导出之前的空表,只能用以下方法,可以构建针对空表分配空间的命令语句:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表。

● 数据库插入数据前,修改11g_R2参数可以导出空表 查找空表语句:select table_name from user_tables where num_rows =0; 。
● Oracle 10g以后增加了expdp和impdp工具,用此工具也可以导出空的表

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】