Gavin--博德

沉稳、专注--技术在于共享,共同成长。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Oracle 11g不能导出空表的问题解决(转)

Posted on 2013-11-18 09:34  Gavin·Gong  阅读(166)  评论(0编辑  收藏  举报

Oracle 11g不能导出空表的问题解决

使用Oracle 11g的朋友可能纠结过这样的问题,exp命令导出来的数据会莫名其妙的缺少一些表,分析过程中会发现这些表都是未插入过记录的空表。问题造成的原因是oracle 11g引入了一个新特性,当新建表未插入数据的时候,服务器为了节约储存空间默认不会为这张表创建segment,所以我们导出数据的时候就导不出来空表信息,最终导致程序出错。
 
解决办法:
 
修改配置参数
 
sqlplus /nolog
 
SQL>connect system/password as sysdba;
 
SQL>show parameter deferred_segment_creation;
 
你会看到它默认为true,修改。
 
SQL>alter system set deferred_segment_creation=false;
 
重启oracle服务。
 
设置以后再创建的新表不插入数据也可以被导出,但更改参数之前的空表仍未创建segment,需要手工对它们插入数据就可以生成segment。