Oracle эквивалент подсказок запроса ROWLOCK, UPDLOCK, READPAST - PullRequest
4 голосов
/ 15 октября 2010

В SQL Server я использовал следующие подсказки внутри запросов:

  • rowlock (блокировка уровня строки)
  • updlock (предотвращает грязное чтение)
  • readpast (donне блокировать ожидание блокировки строки, перейти к первой разблокированной строке)

например,

select top 1 data from tablez with (rowlock,updlock,readpast);

Есть ли эквивалентные подсказки в запросе для Oracle?

1 Ответ

7 голосов
/ 15 октября 2010

Эквивалентом ROWLOCK является FOR UPDATE предложение

select *
from emp
for update;

Поскольку 11g Oracle задокументировал синтаксис SKIP LOCKED, который эквивалентен READPAST:

select *
from emp
for update skip locked;

Этот синтаксис работал целую вечность (он является основополагающим для расширенной очереди), но если он отсутствует в документах, он не поддерживается,

Нет эквивалента блокировке UPDLOCK, потому что Oracle не позволяетгрязное чтение.Узнать больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...