本篇内容主要讲解“exp报错与exp为何导不出某些表结构原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“exp报错与exp为何导不出某些表结构原因是什么”吧!
成都创新互联公司是一家以网络技术公司,为中小企业提供网站维护、网站设计、成都网站建设、网站备案、服务器租用、空间域名、软件开发、成都微信小程序等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站欢迎咨询:028-86922220
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为何导不出某些表结构原因是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!