T_GL_USERSETTING的LOB字段FSETTING损坏或导出、查询失败

T_GL_USERSETTING的LOB字段FSETTING损坏或导出、查询失败
ORA-01555: snapshot too old: rollback segment number 10 with name "_SYSSMU10$" too small
或
ORA-01555: snapshot too old: rollback segment number with name "" too small
ORA-22924: snapshot too old
""里有内容的,比如"_SYSSMU10$" ,也可能""里没有内容,可以先查看是否超时导致,可以设置参数、加大undo表空间解决,设置完再查询或导出:
alter system set undo_retention=172800 ;
ALTER TABLE T_GL_USERSETTING MODIFY LOB(FSETTING)(retention);
如果上面方法不行,可能是LOB的字段损坏,在select或update或insert或delete语句中,只要访问到有CLOB的那一行数据就会报这个错。
修复方法:
步骤1:
使用eas用户在sqlplus登录,并创建临时表
sqlplus eas用户名/密码
drop table corrupt_lobs; --如果之前没有建过这个表,会出错,请忽略错误
create table corrupt_lobs (corrupt_rowid rowid, err_num number);
set serveroutput on
declare
error_1578 exception;
error_1555 exception;
error_22922 exception;
error_22924 exception;
pragma exception_init(error_1578,-1578);
pragma exception_init(error_1555,-1555);
pragma exception_init(error_22922,-22922);
pragma exception_init(error_22924,-22924);
n number;
begin
for cursor_lob in (select rowid r, FSetting from T_GL_UserSetting) loop
begi
T_GL_USERSETTING的LOB字段FSETTING损坏或导出、查询失败
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



