sql >> Databáze >  >> RDS >> Oracle

Aktualizujte prohlášení s vnitřním spojením na Oracle

Tato syntaxe není platná v Oracle. Můžete to udělat:

UPDATE table1 SET table1.value = (SELECT table2.CODE
                                  FROM table2 
                                  WHERE table1.value = table2.DESC)
WHERE table1.UPDATETYPE='blah'
AND EXISTS (SELECT table2.CODE
            FROM table2 
            WHERE table1.value = table2.DESC);

Nebo můžete být schopen to udělat:

UPDATE 
(SELECT table1.value as OLD, table2.CODE as NEW
 FROM table1
 INNER JOIN table2
 ON table1.value = table2.DESC
 WHERE table1.UPDATETYPE='blah'
) t
SET t.OLD = t.NEW

Záleží na tom, zda je inline pohled považován za aktualizovatelný společností Oracle (Být aktualizovatelný pro druhý příkaz závisí na některých zde uvedených pravidlech ).



  1. Shell skript pro provádění příkazů pgsql v souborech

  2. Vyloučit sloupec pomocí SELECT * [kromě sloupceA] FROM tableA?

  3. Logy komprimovaného archivu PostgreSQL ve Windows

  4. První veřejný náhled na SQL Server 2019:CTP 2.0