Para este exemplo, seu problema está definitivamente na subconsulta USING. Esta consulta produz mais de um 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
Portanto, a cláusula ON corresponderá à(s) mesma(s) linha(s) em
table1
mais de uma vez:ON (table1.column3 = t2.column1 )
O Oracle não consegue descobrir qual valor de
t2.column2
deve ser usado no UPDATE, então lança ORA-30926
. Usar distinct na subconsulta não ajuda porque dá permutações de todas as colunas. Você precisa escrever uma subconsulta que produzirá valores exclusivos de
t2.column1
em todas as linhas ou adicione outra(s) coluna(s) de identificação para gerar uma chave exclusiva que você pode juntar a table1
.