Вставка в таблицу из Oracle View
У меня есть представление, которое динамически возвращает значения из разных таблиц. Мне нужно было вставить или удалить в какую-либо таблицу из этого представления, всякий раз, когда представление добавляет или уменьшает данные. Должен ли я использовать хранимую процедуру или что-то подобное
1 ответ
Как уже говорилось @MichaelBroughton, представление физически не хранит данные, а представление не знает, когда изменяются его базовые данные.
Я предлагаю вам подумать о создании триггеров на базовых таблицах и позволить этим триггерам обрабатывать обновления целевой таблицы. Если это применимо в вашем контексте, вы, конечно, можете иметь несколько триггеров, каждый из которых выполняет одну и ту же хранимую процедуру, в которой выполняется распространение данных.
Матриализированное представление также может быть решением, поскольку вы можете просто создать триггер для этого представления, но за счет фактического хранения всех данных, которые предоставляет ваше представление.