Oracle 导出空表问题解决

Oracle 空表无法导出的原因

  ORACLE 11G在用EXPORT导出时,空表不能导出,原因是oracle 11g 增加了一个新特性,就是表中没有数据的时候,此时是不给表分配segment 以节省空间,

  oracle 在11g 之后增加了一个参数deferred_segment_creation ,默认为true; 当修改为false 的时候就能解决问题了

alter system/session set deferred_segment_creation=true/false;

解决办法: 

 解决办法1:

  把每一个空表都插入一条数据,然后导出就可以了,这样方法有点笨,但可以实现

解决办法2:

   在sqlplus中,执行如下命令:

   SQL>alter system set deferred_segment_creation=false;

   查看:
   SQL>show parameter deferred_segment_creation;

注意事项:

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

 对已经存在的空表进行一下操作

 

>select table_name from user_tables where NUM_ROWS=0; 

彩蛋。。。。。

查询已经分配segment的表,为'NO' 就是没有分配表空间的表

select *  from user_tables   where segment_created = 'YES'

 最后大神的文章链接:http://blog.sina.com.cn/s/blog_5f0e9ca50101it7n.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值