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

Oracle sql MERGE INTO dengan satu klausa where

Untuk contoh ini, masalah Anda pasti ada di subquery MENGGUNAKAN. Kueri ini menghasilkan lebih dari satu nilai table2.column1 :

SELECT DISTINCT table2.column1, 
        view1.column2
 FROM SCHEMA2.TABLE_2 table2
 LEFT JOIN SCHEMA2.VIEW_1 view1
 ON table2.column2 = view1.column3

Jadi klausa ON akan cocok dengan baris yang sama di table1 lebih dari sekali:

ON (table1.column3 = t2.column1 )

Oracle tidak dapat mengetahui nilai t2.column2 yang mana harus digunakan dalam UPDATE, sehingga melemparkan ORA-30926 .

Menggunakan berbeda di subquery tidak membantu karena itu memberikan permutasi dari semua kolom. Anda perlu menulis subquery yang akan menghasilkan nilai unik t2.column1 di semua baris, atau tambahkan kolom pengenal lain untuk menghasilkan kunci unik yang dapat Anda gabungkan ke table1 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Format data Tabel SQL sebagai Tabel Teks

  2. File Respons Pembuatan Otomatis

  3. Melakukan pembaruan massal dengan prosedur tersimpan MyBatis dan Oracle

  4. Bitwise eksklusif ATAU di Oracle

  5. Transpose tidak konsisten