В принципе, да, если представления построены таким образом, что базовые таблицы могут быть обновлены через представление. Например, допустим, у меня есть таблица с именем TABLE_1 и я создаю представление VIEW_1 следующим образом:
CREATE OR REPLACE VIEW VIEW_1 AS
SELECT *
FROM TABLE_1
Если я выполняю оператор обновления,
UPDATE VIEW_1
SET FIELD_N = 'XYZ'
WHERE KEY_1 = 123
Oracle достаточно яркий, чтобы передайте UPDATE до базовой таблицы, и TABLE_1 будет обновлен.
Однако представление любой сложности, скорее всего, будет содержать операции, которые делают представление не подлежащим обновлению. Допустим, у меня есть следующий VIEW_2:
CREATE OR REPLACE VIEW VIEW_2 AS
SELECT KEY_1,
FIELD_N,
SUM(SOME_OTHER_FIELD) AS OTHER_SUM,
MIN(YADDA_YADDA) AS MIN_YADDA
FROM TABLE_1
GROUP BY KEY_1,
FIELD_N
, ОБНОВЛЕНИЕ этого представления завершится с ошибкой ORA-01732: data manipulation operation not legal on this view
. Так что, можете ли вы обновить через представление или нет, зависит от того, какие операции выполняет представление.
db <> fiddle здесь