Strange Quirk
I have recently re-read the following Tom Kyte's article and something has struck me as very odd. This is the article that got me wondering:
http://www.oracle.com/technetwork/issue-archive/2010/10-nov/o60asktom-176254.html
I didn't notice this the first time around, but now it struck me: how can Oracle locks be released before the commit is issued? All manuals say that Oracle locks have the same lifespan as the transaction that issued them. If I assume that Tom Kyte's description is factually correct and that it wasn't a case of WUI (Writing Under Influence), then there are two possible ways of doing it:
http://www.oracle.com/technetwork/issue-archive/2010/10-nov/o60asktom-176254.html
if you update the parent table or delete from it, the child table will
still be locked, but just for the duration of the UPDATE or DELETE. The
lock is released after the statement is processed—not when you commit.
This is better than in 1993, but the lock still exists.
I didn't notice this the first time around, but now it struck me: how can Oracle locks be released before the commit is issued? All manuals say that Oracle locks have the same lifespan as the transaction that issued them. If I assume that Tom Kyte's description is factually correct and that it wasn't a case of WUI (Writing Under Influence), then there are two possible ways of doing it:
0