http://download.oracle.com/docs/cd/B10501_01/server.920/a96524/c21cnsis.htm#2841
Here are a small sample of the knowledge pearls —
– If a transaction obtains a row lock for a row, the transaction also acquires a table lock for the corresponding table. The table lock prevents conflicting DDL operations (like alter table).
– A detailed comparison of read-committed vs serializable isolation levels in Oracle
To my surprise,
* “Readers of data do not wait for writers of the same data rows”. Maybe Reader thread simply goes ahead and read-committed. Reads either the BEFORE or the AFTER image of the row. Now, If isolation is at Serializable, then still no wait, but this thread will throw exception if it re-reads the row and detects update. This is a classic non-repeatable-read error.