Oracle
 sql >> база данни >  >> RDS >> Oracle

Актуализирайте изявление с вътрешно присъединяване на Oracle

Този синтаксис не е валиден в Oracle. Можете да направите това:

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

Или можете да можете да направите това:

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

Зависи дали вграденият изглед се счита за актуализиран от Oracle (Да бъде актуализиран за втория израз зависи от някои правила, изброени тук ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Относно елемента формат V в Oracle

  2. Задаване на изчакване на мрежата за JDBC връзка

  3. Може ли някой да обясни какво наистина прави изявлението MERGE в Oracle?

  4. Актуализирайте изявление с вътрешно присъединяване на Oracle

  5. Попълване на PL/SQL таблица от блок в Oracle D2k Forms