Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Perbarui pernyataan dengan gabungan dalam di Oracle

Sintaks itu tidak valid di Oracle. Anda dapat melakukan ini:

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

Atau Anda mungkin dapat melakukan ini:

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

Itu tergantung jika tampilan sebaris dianggap dapat diperbarui oleh Oracle( Agar dapat diperbarui untuk pernyataan kedua tergantung pada beberapa aturan yang tercantum di sini ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat Mesin Virtual Dengan Oracle VM Virtual Box

  2. Mendapatkan baris tambahan - Setelah bergabung dengan 3 tabel menggunakan Gabung Kiri

  3. PERIKSA CONSTRAINT string yang hanya berisi angka. (Oracle SQL)

  4. Oracle DROP TABLE JIKA ADA Alternatif

  5. Webrick sangat lambat merespons. Bagaimana cara mempercepatnya?