For dette eksempel er dit problem helt sikkert i USING underforespørgslen. Denne forespørgsel producerer mere end én værdi af table2.column1
:
SELECT DISTINCT table2.column1,
view1.column2
FROM SCHEMA2.TABLE_2 table2
LEFT JOIN SCHEMA2.VIEW_1 view1
ON table2.column2 = view1.column3
Så ON-sætningen vil matche de samme række(r) i table1
mere end én gang:
ON (table1.column3 = t2.column1 )
Oracle kan ikke finde ud af, hvilken værdi af t2.column2
skal bruges i OPDATERING, så den sender ORA-30926
.
Det hjælper ikke at bruge distinct i underforespørgslen, fordi det giver permutationer af alle kolonnerne. Du skal skrive en underforespørgsel, som vil producere unikke værdier af t2.column1
på tværs af alle rækker, eller tilføj en anden identificerende kolonne(r) for at generere en unik nøgle, som du kan tilslutte til table1
.