Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Syntaxfehler bei Aktualisierungsabfrage beim Join mit einer Tabelle

Oracle unterstützt join nicht im update Syntax:

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

Dies ist Standard-SQL und sollte in jeder Datenbank funktionieren.

Ihre Abfrage hat auch andere Probleme. . . die Unterabfrage steht nicht in Klammern, der inner join hat keine erste Tabelle.

BEARBEITEN:

Sie können diese Abfrage mit dieser Unterabfrage schreiben:

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

Ich habe dies auf ein IN umgestellt , nur weil das eine andere Option ist. Sie könnten immer noch EXISTS verwenden .