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
.