За този пример вашият проблем определено е в подзаявката USING. Тази заявка произвежда повече от една стойност на table2.column1
:
SELECT DISTINCT table2.column1,
view1.column2
FROM SCHEMA2.TABLE_2 table2
LEFT JOIN SCHEMA2.VIEW_1 view1
ON table2.column2 = view1.column3
Така че клаузата ON ще съответства на същия ред(ове) в table1
повече от веднъж:
ON (table1.column3 = t2.column1 )
Oracle не може да разбере коя е стойността на t2.column2
трябва да се използва в АКТУАЛИЗАЦИЯТА, така че хвърля ORA-30926
.
Използването на distinct в подзаявката не помага, защото това дава пермутации на всички колони. Трябва да напишете подзаявка, която ще генерира уникални стойности на t2.column1
във всички редове или добавете друга идентифицираща колона(и), за да генерирате уникален ключ, който можете да присъедините към table1
.