EXP-00003: 未找到段xxx的存储定义

导出的时候,我们有时候会遇到一种错误

EXP-00003: no storage definition found for segment

这个是属于数据库的bug.


从9.2.0.5.0 或更高版本的数据库中已经不存在这种问题(如: 9.2.0.6.0 or 10.1.0.4.0)
如果客户端版本低于9205,而服务器高于或者等于9205,也可能遭遇这个bug




除了打补丁以外,还有种解决方法

1.先找到这个文件,$ORACLE_HOME/rdbms/admin/catexp.sql

2.其中有个exu9tne视图的定义,找到它.

3.单独编辑这个视图的定义,再后面加上UNION ALL select * from sys.exu9tneb,并重建这个视图

4.用SYS用户来登录并exp

5.还原SYS.exu9tne的原来的定义,还是用原始脚本catexp.sql





自己定义后的exu9tne结果可能是这样(依版本而不同)

CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
UNION ALL
SELECT * from sys.exu9tneb  #这里是我们自己添加的一行

你可能感兴趣的:(oracle,sql,ext,脚本)