本篇内容主要讲解“exp报错与exp为何导不出某些表结构原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“exp报错与exp为何导不出某些表结构原因是什么
本篇内容主要讲解“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为何导不出某些表结构原因是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
--结束END--
本文标题: exp报错与exp为何导不出某些表结构原因是什么
本文链接: https://lsjlt.com/news/64206.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0