У меня есть таблица:
table foo{
bar number,
status varchar2(50)
}
У меня есть несколько потоков / хостов, каждый из которых использует таблицу.Каждый поток обновляет статус, т.е. пессимистически блокирует строку.
В Oracle 12.2.
select ... for update skip locked
, кажется, делает эту работу, но я хочу ограничить количество строк.Новый FETCH NEXT
звучит правильно, но я не могу понять правильный синтаксис:
SELECT * FROM foo ORDER BY bar
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY
FOR UPDATE SKIP LOCKED;
Какой самый простой способ добиться этого, то есть с минимальным кодом 1 (в идеале без pl /функция sql)
Я хочу что-то вроде этого:
select * from (select * from foo
where status<>'baz' order by bar
) where rownum<10 for update skip locked
PS 1. Мы рассматриваем отход от оракула.