首页 > 其他分享 >ORA-01555 ORA-22924故障处理

ORA-01555 ORA-22924故障处理

时间:2022-09-24 09:45:40浏览次数:60  
标签:lob set name 01555 22924 error ORA

用户逻辑导出有BLOB字段数据的时候,在检验图像结果这张表,报ora-01555 ora-22924 错误提示如下:

ORA-31693: Table data object "XCKY"."COMMON_PICTURE" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-01555: snapshot too old: rollback segment number  with name "" too small
ORA-22924: snapshot too old

查看数据库参数undo_retention确认并非有undo导致,在执行表mvoe过程中同样提示

alter table XCKY.COMMON_PICTURE move lob(CONTENT) store as (tablespace system_info);
#错误提示
ORA-01555: snapshot too old: rollback segment number  with name "" too small
ORA-22924: snapshot too old

通过上面的错误可以得出content字段有问题,通过查询mos得到如下解决方案

sqlplus / as sysdba
alter system set events '600 trace name errorstack forever';
alter system set events '1555 trace name errorstack forever';
alter system set events '22924 trace name errorstack forever';

set concat off create table corrupted_lob_data (corrupted_rowid rowid,err_num number); set concat off declare error_1555 exception; pragma exception_init(error_1555,-1555); error_22924 exception; pragma exception_init(error_22924,-22924); num number; begin for cursor_lob in (select rowid r, &&lob_column from &table_owner.&table_with_lob) loop begin num := dbms_lob.instr (cursor_lob.&&lob_column, hextoraw ('889911')) ; exception when error_1555 then insert into corrupted_lob_data values (cursor_lob.r,01555); commit; when error_22924 then insert into corrupted_lob_data values (cursor_lob.r,22924); commit; end; end loop; end;

执行完成后通过查询corrupted_lob_data表即可得到blob有问题的数据,可通过empty_blob()函数充值blob的值来解决该错误。

update xcky.common_picture set content= empty_blob() where rowid in (select corrupt_rowid from corrupt_lobs);
commit;
#说明:清空clob值(若表类型为blob,使用empty_blob() 否则为(empty_clob() ) )

 关闭跟踪

sqlplus / as sysdba
alter system set events '600 trace name errorstack off';
alter system set events '1555 trace name errorstack off';
alter system set events '22924 trace name errorstack off';

 

标签:lob,set,name,01555,22924,error,ORA
From: https://www.cnblogs.com/Roobbin/p/16724958.html

相关文章

  • ORA-20011 ORA-29913 KUP-11024故障处理
    在日常巡中发现alert日志有出现ORA-20011:ApproximateNDVfailed:ORA-29913:errorinexecutingODCIEXTTABLEOPENcalloutKUP-11024:Thisexternaltablecanonl......
  • Fedora 安装jdk
    Fedora自带openjdk,所以如果安装oracle的jdk的话要先删除openjdk,步骤如下:1:rpm-qa|grepjdk查看当前的jdk情况。 2:sudodnfremovejavajava-1.8.0-openjdk*,或者sud......
  • CSharp: Decorator Patterns
     ///<summary>///SummarydescriptionforDecorator.///装饰DecoratorPatterns///20220918///geovindu,GeovinDu,涂聚文///</su......
  • Oracle表数量对数据泵备份恢复速度的影响情况
    Oracle表数量对数据泵备份恢复速度的影响情况背景随着公司产品交付后的时间越来越久.数据库的备份恢复速度会越来越慢.最开始一直认为是因为数据量导致的.但是最近......
  • 基于SX1278/SX1276芯片的LoRa技术知识详解
    载波频率:载波频率就是没有调制数据的纯射频信号,用来载送信号的频率,在这个频率的基础上进行移频键控的调制输出无线信号,通常说发射频率就是指载波频率。lora扩频因子:扩频......
  • Oracle中使用游标详解
    一、使用游标对于DML语句和单行selectinto,oracle自动分配隐形游标。处理select返回多行语句,可以使用显式游标。使用显示游标处理多行数据,也可使用SELECT..BULKCOLLE......
  • 2、oracle安装出现的问题
    1、问题:scott用户在安装时未解锁的问题 方案: 2、适配器错误  方案:确保勾选的服务是启动状态  3、 ......
  • 1、oracle 10g安装
                                      可以选择关闭              ......
  • bug笔记_oracle_无法在源表中获得一组稳定的行
    ORA-30926:无法在源表中获得一组稳定的行原因:MergeInto语句using表的关联字段对应多个条数据,导致修改语句无法确定以哪条数据为准(关联字段重复)--修改a的column1字段为......
  • Oracle数据库备份恢复
    数据库备份热备份(expdp/impdp导出/导入)通过expdp数据泵工具把老服务器数据导出到一个*.dmp文件中,然后在新服务器上通过impdp导入命令把dmp文件中的数据泵入到数据......