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

error de sintaxis con consulta de actualización cuando se une a alguna tabla

Oracle no admite join en la update sintaxis:

UPDATE T123
    SET COL1 = 1,
        VER1 = VER1 + 1
    WHERE EXISTS (SELECT 1 FROM WAPTDT_123 T WHERE T123.REQUEST_ID = T.NUM_FLD);

Este es SQL estándar y debería funcionar en cualquier base de datos.

Su consulta también tiene otros problemas. . . la subconsulta no está entre paréntesis, la inner join no tiene primera mesa.

EDITAR:

Puede escribir esta consulta con esa subconsulta:

UPDATE T123
    SET COL1 = 1,
        VER1 = VER1 + 1
    WHERE T123.REQUEST_ID IN (SELECT C1 FROM ( SELECT T.NUM_FLD C1 FROM WAPTDT_123 T) TAB );

Cambié esto a un IN , solo porque esa es otra opción. Todavía podrías usar EXISTS .