oracle11g不能导出空表问题,以及解决方法。

Oracle 11g中有个新特性:新增了一个参数:

‘‘deferred_segment_creation’’:意思是段延迟创建,默认是True。

参数为True的话,你新建张table1表,并且没有插入数据,oracle不会向这个表分配extent,也就是不占用空间,也不分配segment,所以表就没有导出来。

在系统表all_tables中有个字段segment_treated的字段值是 YES 或 NO,来确定表是否分配了segment,说白了就是占用少量的空……

解决方法:

1.设置deferred_segment_creation参数:

    在sqlplus中执行如下命令:

  SQL>alter system deferred_segment_creation = false;

 查看:SQL>Show parameter deferred_segment_creation ;

 注意:该值设置后只对以后新增的表起作用,之前建立的空表(已经存在的空表)不起作用,仍不能导出。

2.使用allocate extent可以导出已经存在的空表

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

3.执行完2之后,会得到一些语句,然后复制,粘贴到执行sql的窗口,执行命令,再导出就会导出之前的空表。

如有不懂加我联系方式,相互交流,沟通。

 

  

转载于:https://www.cnblogs.com/yi-u/p/7798727.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值