Oracle
 sql >> Database >  >> RDS >> Oracle

Come posso utilizzare FOR UPDATE con un JOIN su Oracle?

prova:

select ..... 
from <choose your table>
where id in (<your join query here>) for UPDATE;

MODIFICA :potrebbe sembrare un po' controintuitivo tenendo presente la domanda a cui ti sei collegato (che chiedeva come fare a meno di un IN ), ma può comunque fornire vantaggi se la tua iscrizione restituisce un set limitato. Tuttavia, non esiste una soluzione alternativa:l'eccezione Oracle è abbastanza autoesplicativa; Oracle non sa quali righe bloccare a causa di DISTINCT . Puoi omettere DISTINCT oppure definisci tutto in una vista e poi aggiornala, se lo desideri, senza il blocco esplicito: http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm