Oracle 11g无法导出空表的解决方案

Oracle 11g无法导出空表的解决方案

 

问题:

EXP导某一用户下的表时,发现空表没有被导出

 

原因:

Oracle 11g默认不给空表分配extent,也就说空表不占数据空间。这样导出的时候自然无从导起。

 

解决思路:

给空表分配extent。如果是测试环境的话,因为判断是否为空表比较烦琐,可以给全部的表分配extent

 

代表实现:

1 创建alloc_extent.bat,内容如下

sqlplus scott/tiger@local @alloc_extent.sql > alloc_extent.log

 

2 同一目录下创建alloc_extent.sql,内容如下:

set pagesize 100

set heading off

spool D:\t.sql

select  'alter table '||table_name||' allocate extent;' from user_tables;

spool   off

@D:\t.sql

exit

 

这里set pagesize 100是把每页设为100行,意思是每输出100行,显示一行虚线和一行字段名。默认是十几行就显示一行虚线和一行字段名。

set heading off是把每个pagesize的虚线和字段名去掉,不显示出来。

spool D:\t.sql表示把输出结果保存到D盘根目录下的t.sql文件中。

@D:\t.sql表示执行D盘根目录下的t.sql文件。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29485627/viewspace-1811091/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29485627/viewspace-1811091/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值