情况4 交叉fetch和commit
这种比较典型的情况是在一个过程中使用了如下的结构:
cursor c1 is select * from bigemp;
begin
for c1rec in c1 loop
update mydual set a=a;
commit;
end loop;
end ;
Solution:
1、检查过程,避免这种交叉提取和提交的情况出现。
2、延迟commit
3、在查询语句中,增加“ order by 1 ”的语句,这样会在临时段中保留ORDER BY的结果,可以避免一些一致读。
情况5 回滚段发生错误的解决方法:
由这种原因导致的ORA-01555错误是极少数的。一般情况下,也只有在那些不支持大文件的操作系统会发生这种情况。
Solution:
1、检查init.ora中的参数文件,show parameter CORRUPT,可以将结果提交给ORACLE SUPPORT SERVICES。如果这样的参数存在,建议重 建数据库。
2、检查操作系统是否支持ORACLE。检查操作系统的错误日志和ORACLE的错误日志。
3、向Oracle Support Services寻求帮助。