Как только транзакция 1 завершит свою работу, транзакция 2 увидит обновленные изменения в обеих последних двух строках.То есть, если вы не выполните SET TRANSACTION READ ONLY
как самое первое действие в вашей транзакции.
В транзакции чтения-записи отдельные операторы согласованы по чтению, но не между несколькими операторами.
Изменить:
Стив, я считаю, что это неправильно.Из документации :
[Чтение подтвержденной транзакции]
Это уровень изоляции транзакции по умолчанию.Каждый запрос, выполняемый транзакцией, видит только те данные, которые были зафиксированы до начала запроса (но не транзакции).Запрос Oracle никогда не читает грязные (незафиксированные) данные.
Поскольку Oracle не запрещает другим транзакциям изменять данные, считываемые запросом, эти данные могут быть изменены другими транзакциями между двумя выполнениями запроса.Таким образом, транзакция, которая выполняет данный запрос дважды, может испытывать как неповторимое чтение, так и фантомы.
[Serializable]
Сериализуемые транзакции видят только те изменения, которые были зафиксированы ввремя начала транзакции плюс изменения, внесенные самой транзакцией с помощью операторов INSERT, UPDATE и DELETE.Сериализуемые транзакции не вызывают повторяющихся операций чтения или фантомов.