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

erro de sintaxe com consulta de atualização ao unir com alguma tabela


Oracle não suporta join na update sintaxe:
UPDATE T123
    SET COL1 = 1,
        VER1 = VER1 + 1
    WHERE EXISTS (SELECT 1 FROM WAPTDT_123 T WHERE T123.REQUEST_ID = T.NUM_FLD);

Este é o SQL padrão e deve funcionar em qualquer banco de dados.

Sua consulta também tem outros problemas. . . a subconsulta não está entre parênteses, a inner join não tem primeira mesa.

EDITAR:

Você pode escrever esta consulta com essa 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 );

Mudei para um IN , só porque essa é outra opção. Você ainda pode usar EXISTS .