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/