本篇内容主要讲解“exp报错与exp为何导不出某些表结构原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“exp报错与exp为何导不出某些表结构原因是什么”吧!
11G中有个新特性,当表无数据时,不分配segment,以节省空间
解决方法:
设置deferred_segment_creation 参数
修改配置参数
sqlplus /nolog
SQL>connect system/password as sysdba;
SQL>show parameter deferred_segment_creation;
你会看到它默认为true,修改。
SQL>alter system set deferred_segment_creation=false;
重启oracle服务。
show parameter deferred_segment_creation
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean TRUE
SQL> alter system set deferred_segment_creation=false;
系统已更改。
SQL> show parameter deferred_segment_creation
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean FALSE
该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
搞了我好久,最后查到这个方法。
先查询一下当前用户下的所有空表
select table_name from user_tables where NUM_ROWS=0;
用以下这句查找空表
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or segment_created='NO'
把查询结果导出,执行导出的语句
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
与
原因:
LT_EXPORT_PKG在10.2.0.4之前,应该在SYS模式下,但在10.2.0.4及之后,该包已经移到WMSYS模式下.
检查EXPPKGACT$表内容
select * from sys.exppkgact$ wherepackage='LT_EXPORT_PKG';
解决方法:
create table sys.exppkgact$_backup asselect * from sys.exppkgact$; --备份表
delete fromsys.exppkgact$ where package ='LT_EXPORT_PKG'; --删除表里值为 LT_EXPORT_PKG 这个的数据
到此,相信大家对“exp报错与exp为何导不出某些表结构原因是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。