probeer:
select .....
from <choose your table>
where id in (<your join query here>) for UPDATE;
BEWERKEN :dat lijkt misschien een beetje contra-intuïtief, rekening houdend met de vraag waarnaar u linkte (waarin werd gevraagd hoe u kunt afzien van een IN
), maar kan nog steeds voordeel opleveren als uw deelname een beperkte set retourneert. Er is echter geen oplossing:de orakeluitzondering spreekt voor zich; oracle weet niet welke rijen vergrendeld moeten worden vanwege de DISTINCT
. U kunt de DISTINCT
. weglaten of definieer alles in een weergave en werk dat vervolgens bij, als je dat wilt, zonder de expliciete vergrendeling: http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm