Oracle
 sql >> Base de données >  >> RDS >> Oracle

erreur de syntaxe avec la requête de mise à jour lors de la jointure avec une table

Oracle ne prend pas en charge join dans la update syntaxe :

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

Ceci est du SQL standard et devrait fonctionner dans n'importe quelle base de données.

Votre requête a également d'autres problèmes. . . la sous-requête n'est pas entre parenthèses, la inner join n'a pas de première table.

MODIFIER :

Vous pouvez écrire cette requête avec cette sous-requête :

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

Je l'ai remplacé par un IN , juste parce que c'est une autre option. Vous pouvez toujours utiliser EXISTS .