Tuesday, January 31, 2006

Oracle: fetch across commit

for x in ( select rowid rid, t.* from T ) loop
update T set x = x+1 where rowid = x.rid;
commit;
end loop;


That implicit cursor is fetched from "across a commit". It is the practice of
keeping a cursor open after committing. It is a bad practice and is a common
cause of ORA-1555 (the above looping construct in particular)

0 Comments:

Post a Comment

<< Home