博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle exp ora文件,Oracle exp导出时出现ORA-01555和ORA-22924的解决
阅读量:5009 次
发布时间:2019-06-12

本文共 1117 字,大约阅读时间需要 3 分钟。

Oracle exp导出带有LOB字段表时出现ORA-01555和ORA-22924报错,给出解决方法。[@more@]

1、问题描述

环境为aix5.3系统,oracle9.2.0.1的库,库内rhxt用户有一rk_zp表,这张表zp字段是blob型的,这张表43GB,每次exp至几个G时就报ORA-01555和ORA-22924错了。

2、问题解决

通过实际的测试及查MOS,发现这是因为blob某些行有问题触发了oracle BUG

官方给的解决方式如下:

<1>建一张临时表存储所有corrupted LOBs行的rowid.

SQL> create table corrupt_lobs (corrupt_rowid rowid, err_num number);

<2>运行如下PLSQL block:

declare

error_1578 exception;

error_1555 exception;

error_22922 exception;

pragma exception_init(error_1578,-1578);

pragma exception_init(error_1555,-1555);

pragma exception_init(error_22922,-22922);

n number;

begin

for cursor_lob in (select rowid r, zp from rkxt.rk_zp) loop

begin

n:=dbms_lob.instr(cursor_lob.zp,hextoraw('889911'));

exception

when error_1578 then

insert into corrupt_lobs values (cursor_lob.r, 1578);

commit;

when error_1555 then

insert into corrupt_lobs values (cursor_lob.r, 1555);

commit;

when error_22922 then

insert into corrupt_lobs values (cursor_lob.r, 22922);

commit;

end;

end loop;

end;

/

<3>用如下语句把相应行的blob字段清空:

SQL> update LOBDATA set document = empty_blob()

where rowid in (select corrupt_rowid from corrupt_lobs);

<4>重新执行exp操作

转载地址:http://xmggp.baihongyu.com/

你可能感兴趣的文章
C:大数相加
查看>>
160. Intersection of Two Linked Lists
查看>>
人生苦短,我用python-- Day11
查看>>
JAVA Bean
查看>>
ehcache memcache redis 三大缓存男高音_转
查看>>
curd_3
查看>>
百度地图API示例之设置地图显示范围
查看>>
Java构造方法、重载及垃圾回收
查看>>
.Net Core AES加密解密
查看>>
Spring Quartz实现任务调度
查看>>
python | 桶排序、冒泡排序、选择排序、去重
查看>>
两个Html页面之间值得传递
查看>>
EasyUI datagrid 的多条件查询
查看>>
Mac升级bash到最新版本
查看>>
利用vagrant打包系统--制作自己的box
查看>>
美女与硬币问题
查看>>
计算几何算法概览 (转)
查看>>
Notepad++的ftp远程编辑功能
查看>>
数据库多对多关联表(Python&MySQL)
查看>>
[实变函数]1.2 集合的运算
查看>>