Почему я не могу обновить более одного столбца одновременно, используя ключевое слово With?

Ниже показано заявление об обновлении, которое отлично работает,Я использовал оператор with в подзапросе, чтобы значительно улучшить производительность, но по какой-то причине мне не разрешено добавлять дополнительный столбец из той же таблицы для обновления.

Работает:

UPDATE Table_A SET (Col_One) = (WITH OneValue AS (SELECT DISTINCT t.Col_One
                                                  FROM Table_Two t, Table_A a
                                                  WHERE t.id = a.New_Id))
                                SELECT Col_One FROM OneValue);

Что я хотел бы сделать, так это просто включить еще один столбец для обновления также из table_two, подобных этому

UPDATE Table_A SET (Col_One, Col_Two) = (WITH OneValue AS (SELECT DISTINCT t.Col_One, T.Col_two
                                                  FROM Table_Two t, Table_A a
                                                  WHERE t.id = a.New_Id))
                                SELECT Col_One, Col_Two FROM OneValue);

, но я получаю выражение набора обновлений ora-01767 должно быть подзапросом. Я понимаю эту ошибку, но не вижу, как я ее генерирую. Любая помощь очень ценится.

Заранее спасибо.

7
задан dee 6 June 2012 в 15:30
поделиться