11gR2关于exp-00003问题

本文详细介绍了在使用Oracle数据库版本11.2.0.2时,遇到导出空表时报错的bug,并提供了两种有效的解决方案:修改数据库参数为false或升级客户端版本至11.2.0.2。通过实践验证,这些方法能够解决导出空表时遇到的ORA-01455错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库版本:11.2.0.2

客户端版本:11.2.0.1

做个测试,新建一张test1,插入数据,另外再建1张空表test2

exp用户导出报错

. . 正在导出表 test1

导出了 5

EXP-00008: 遇到 ORACLE 错误 1455

ORA-01455: 转换列溢出整数数据类型

EXP-00000: 导出终止失败

客户端以表方式导出test1没问题,但是在导test1的下一张表格test2报同样问题,同时在某些客户端报错信息多了条EXP-00003: no storage definition found for segment(0,0)

于是在服务器端进行相同的测试,导出均没问题。

此原因是由于11.2.0.1遗留下来的一个bug

11.2.0.1上用户模式的导出方式会忽略过没有分配segment的空表,日志不报任何错误。而以表模式导出空表时会报该表或视图不存在的错误。

尽管ORACLE说在11.2.0.2上此bug已经得到解决,但是前提是客户端需要同样是11.2.0.2的版本。

针对此情况最有效的方式可以采用以下2种对11.2.0.2数据库进行处理

方法一:

修改11g新参数deferred_segment_creation 改为false,重建相关新表,原因是11g默认初始新建表并不马上分配segment

之后导出无报错(同时也是11.2.0.1的解决方案)

方法二:

将客户端升级到11.2.0.2

对于空表先插入数据再delete的方式或者创建表时加入allocate extent size 1k的子句,可以采用但并不方便

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值