En Oracle, puedo seleccionar el 1 mensaje de arriba en una tabla ordenada conSeleccionar subir N con "para la actualización de salto bloqueado" en Oracle
select messageid from(
select
messageid,
RANK() over (order by messageid asc) as msg_rank
from messages
) where msg_rank=1;
Y como descubrí en un previous question puedo seleccionar una fila exclusiva con
select * from messages where rownum < 2 for update skip locked;
sin embargo no puedo combinar estos dos conceptos juntos
select messageid from(
select
messageid,
RANK() over (order by messageid asc) as msg_rank
from messages
) where msg_rank=1 for update skip locked;
-- results in error
-- ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc.
¿Cómo puedo seleccionar XX e la parte superior N con bloqueo de lectura?
creo que esta entrada del blog tiene algunas ideas relevantes: http://markjbobak.wordpress.com/2010/04/06/unintended-consequences/ –