Мы все точно знаем, что говорит ошибка.SET ожидает только одно значение для каждого столбца.Чего мы хотим добиться, так это обновить все строки для данного столбца, используя значения из столбца другой таблицы.
Теперь вот решение:
BEGIN
For i in (select col_X, col_Y from table1)
LOOP
Update table2 set col1 = i.col_X where col2 = i.col_Y;
END LOOP;
END;
Именно так вы запускаете его на рабочем листе SQLDeveloper.Говорят, что это медленно, но это единственное решение, которое помогло мне в этом деле.