Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como posso usar FOR UPDATE com um JOIN no Oracle?


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

EDITAR :isso pode parecer um pouco contra-intuitivo, tendo em mente a pergunta à qual você vinculou (que perguntava como dispensar um IN ), mas ainda pode fornecer benefícios se sua associação retornar um conjunto restrito. No entanto, não há solução alternativa:a exceção do oráculo é bastante autoexplicativa; oracle não sabe quais linhas bloquear por causa do DISTINCT . Você pode deixar de fora o DISTINCT ou defina tudo em uma visualização e atualize isso, se quiser, sem o bloqueio explícito: http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm