Oracle
 sql >> Database >  >> RDS >> Oracle

errore di sintassi con query di aggiornamento quando ci si unisce a una tabella

Oracle non supporta join nell'update sintassi:

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

Questo è SQL standard e dovrebbe funzionare in qualsiasi database.

La tua richiesta ha anche altri problemi. . . la sottoquery non è tra parentesi, il inner join non ha una prima tabella.

MODIFICA:

Puoi scrivere questa query con quella sottoquery:

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 );

L'ho cambiato in un IN , solo perché questa è un'altra opzione. Puoi ancora usare EXISTS .