sql >> Databasteknik >  >> RDS >> Oracle

syntaxfel med uppdateringsfråga när du går med i någon tabell

Oracle stöder inte join i 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);

Detta är standard SQL och bör fungera i vilken databas som helst.

Din fråga har också andra problem. . . underfrågan är inte inom parentes, den inner join har inget första bord.

EDIT:

Du kan skriva den här frågan med den underfrågan:

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

Jag bytte detta till en IN , bara för att det är ett annat alternativ. Du kan fortfarande använda EXISTS .




  1. SQLite Database ger varning automatiskt index på <tabellnamn>(kolumn) Efter uppgradering av Android L

  2. ODP.NET Managed - Det går inte att hitta efterfrågad .Net Framework-dataleverantör

  3. PostgreSQL Skapa schema

  4. JSON-funktioner är nu aktiverade som standard i SQLite