实例
declare
error_1578 exception;
pragma exception_init(error_1578,-1578);
n number;
begin
for cursor_lob in (select rowid r, &&lob_column from &table_owner.&table_with_lob) loop
begin
n:=dbms_lob.instr(cursor_lob.&&lob_column,hextoraw('889911')) ;
exception
when error_1578 then
insert into corrupted_data values (cursor_lob.r);
commit;
end;
end loop;
end;
/
当出现1578异常(块坏)时,触发error_1578这个异常,执行insert into corrupted_data values (cursor_lob.r);
declare
error_1578 exception;
pragma exception_init(error_1578,-1578);
n number;
begin
for cursor_lob in (select rowid r, &&lob_column from &table_owner.&table_with_lob) loop
begin
n:=dbms_lob.instr(cursor_lob.&&lob_column,hextoraw('889911')) ;
exception
when error_1578 then
insert into corrupted_data values (cursor_lob.r);
commit;
end;
end loop;
end;
/
当出现1578异常(块坏)时,触发error_1578这个异常,执行insert into corrupted_data values (cursor_lob.r);
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23033727/viewspace-631439/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23033727/viewspace-631439/
本文介绍了一种在Oracle数据库中处理LOB数据损坏的方法。通过声明并初始化特定的异常,可以在遇到1578错误(通常指示块损坏)时捕获异常,并记录损坏的数据到corrupted_data表中。
1万+

被折叠的 条评论
为什么被折叠?



