When isn’t an Oracle command serialisable?


Oracle transaction is NOT serializable by default, because the default is ISOLATION LEVEL READ COMMITED.
If we want the transaction to be serializable, we must explicitly state SET TRANSACTION ISOLATION LEVEL SERIALIZABLE.
Unlike the transaction, Oracle SELECT and DML statements are by default serializable (statement-level read consistency).
This means that the statement does not see anything that was created after it starts, even if it is COMMIT-ed.
The lecture will show the exceptions, which can create data inconsistencies.