Вставка в таблицу из Oracle View

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


person shishir ghimire    schedule 28.01.2016    source источник
comment
Этот вопрос не имеет абсолютно никакого отношения к Delphi, поэтому я удаляю теги. Это строго вопрос Oracle SQL.   -  person Ken White    schedule 28.01.2016
comment
Что вы имеете в виду, когда представление добавляет или уменьшает данные? Не могли бы вы предоставить какой-нибудь вариант использования, как вы его используете?   -  person Petr Pribyl    schedule 28.01.2016
comment
Похоже, вам нужно материализованное представление.   -  person Sameer Mirji    schedule 28.01.2016
comment
Представление — это просто готовый запрос к таблицам, оно физически не хранит данные. Вам нужно либо использовать материализованное представление, либо использовать решение триггеров для базовых таблиц, которые представление запрашивает для идентификации при изменении содержимого представления.   -  person Michael Broughton    schedule 28.01.2016
comment
это может помочь stackoverflow.com/questions/1652995/   -  person Sandeep    schedule 28.01.2016
comment
Да, материализованное представление может решить эту проблему. Спасибо всем   -  person shishir ghimire    schedule 01.02.2016


Ответы (1)


Как уже заявил @MichaelBroughton, представление физически не хранит данные, и представление не имеет «знаний» о том, когда изменяются его базовые данные.

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

Матриализованное представление также может быть решением, поскольку вы можете просто создать триггер для этого представления, но за счет фактического хранения всех данных, которые предоставляет ваше представление.

person Michael Schaefers    schedule 29.01.2016