Para este ejemplo, su problema definitivamente está en la subconsulta USING. Esta consulta produce más de un valor de table2.column1
:
SELECT DISTINCT table2.column1,
view1.column2
FROM SCHEMA2.TABLE_2 table2
LEFT JOIN SCHEMA2.VIEW_1 view1
ON table2.column2 = view1.column3
Entonces, la cláusula ON coincidirá con la(s) misma(s) fila(s) en table1
más de una vez:
ON (table1.column3 = t2.column1 )
Oracle no puede averiguar qué valor de t2.column2
debe usarse en la ACTUALIZACIÓN, por lo que lanza ORA-30926
.
El uso de distinto en la subconsulta no ayuda porque da permutaciones de todas las columnas. Debe escribir una subconsulta que producirá valores únicos de t2.column1
en todas las filas, o agregue otra(s) columna(s) de identificación para generar una clave única que pueda unir a table1
.