V tomto příkladu je váš problém určitě v poddotazu USING. Tento dotaz vytváří více než jednu hodnotu table2.column1
:
SELECT DISTINCT table2.column1,
view1.column2
FROM SCHEMA2.TABLE_2 table2
LEFT JOIN SCHEMA2.VIEW_1 view1
ON table2.column2 = view1.column3
Klauzule ON tedy bude odpovídat stejnému řádku (řádkům) v table1
více než jednou:
ON (table1.column3 = t2.column1 )
Oracle nemůže zjistit, která hodnota t2.column2
by měl být použit v UPDATE, takže mrští ORA-30926
.
Použití odlišných v poddotazu nepomáhá, protože to poskytuje permutace všech sloupců. Musíte napsat poddotaz, který bude produkovat jedinečné hodnoty t2.column1
přes všechny řádky, nebo přidejte další identifikační sloupce a vygenerujte jedinečný klíč, který můžete připojit k table1
.