spróbuj:
select .....
from <choose your table>
where id in (<your join query here>) for UPDATE;
EDYTUJ :może się to wydawać nieco sprzeczne z intuicją, biorąc pod uwagę pytanie, do którego się połączyłeś (które pytało, jak obejść się bez IN
), ale nadal może przynosić korzyści, jeśli przyłączenie zwraca zestaw z ograniczeniami. Jednak nie ma obejścia:wyjątek wyroczni jest dość oczywisty; Oracle nie wie, które wiersze zablokować z powodu DISTINCT
. Możesz pominąć DISTINCT
lub zdefiniuj wszystko w widoku, a następnie zaktualizuj to, jeśli chcesz, bez wyraźnej blokady: http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm