sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo puedo usar FOR UPDATE con JOIN en Oracle?

prueba:

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

EDITAR :eso puede parecer un poco contrario a la intuición teniendo en cuenta la pregunta a la que se vinculó (que preguntaba cómo prescindir de un IN ), pero aún puede proporcionar beneficios si su combinación devuelve un conjunto restringido. Sin embargo, no hay solución:la excepción de Oracle se explica por sí misma; Oracle no sabe qué filas bloquear debido a DISTINCT . Puede omitir DISTINCT o defina todo en una vista y luego actualícelo, si lo desea, sin el bloqueo explícito: http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm