本文主要是介绍解决Oracle11g导出空表问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.设置deferred_segment_creation 参数:
设置deferred_segment_creation 参数为FALSE来禁用"段推迟创建"(也就是直接创建segment),无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
SQL>alter system set deferred_segment_creation=false;
查看:
SQL>show parameter deferred_segment_creation;
注意:该值设置后只对后面新增的表产生作用,对之前建立的空表(已经存在的)不起作用,仍不能导出。
并且要重新启动数据库,让参数生效。
2.如想导出已有表空间空表(要在要导出表的用户登录下执行以下语句,并将查询结果在数据库中执行)
PL/SQL登录用户,执行
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;
复制查询出的记录,并在在PL/SQL命令行中执行导出结果。
exp命令导出时,观察是否有0行表导出,若无,多半没有导出空表
这篇关于解决Oracle11g导出空表问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!