Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zaktualizuj instrukcję z wewnętrznym sprzężeniem w Oracle

Ta składnia jest nieprawidłowa w Oracle. Możesz to zrobić:

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

Albo możesz być w stanie to zrobić:

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

Zależy to od tego, czy widok wbudowany jest uważany za możliwy do zaktualizowania przez Oracle (Możliwość aktualizacji dla drugiej instrukcji zależy od pewnych reguł wymienionych tutaj ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pytanie PreparedStatement w Javie przeciwko Oracle

  2. Funkcja LN() w Oracle

  3. Oracle SQL — jak pobrać najwyższe 5 wartości z kolumny

  4. utwórz tabelę z sequence.nextval w oracle

  5. Czy możliwe jest przekazanie nazwy tabeli jako parametru w Oracle?