Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment puis-je utiliser FOR UPDATE avec un JOIN sur Oracle ?

essayez :

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

MODIFIER  :cela peut sembler un peu contre-intuitif compte tenu de la question à laquelle vous avez lié (qui demandait comment se passer d'un IN ), mais peut toujours offrir des avantages si votre jointure renvoie un ensemble restreint. Cependant, il n'y a pas de solution de contournement :l'exception oracle est assez explicite ; oracle ne sait pas quelles lignes verrouiller à cause du DISTINCT . Vous pouvez soit omettre le DISTINCT ou définissez tout dans une vue, puis mettez-la à jour, si vous le souhaitez, sans le verrou explicite : http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm