
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.09.2017, 13:41
|
|||
|---|---|---|---|
|
|||
trigger before select |
|||
|
#18+
Доброго времени дни. Предыстория: появилась необходимость создать view при обращении к которой будет происходить обновление агрегирующей таблицы, из которой и происходит выборка. Поскольку в oracle (11g2) нет триггеров на before select постарался решить задачу следующем образом: 1. Есть агрегирующая таблица, например такая: Код: plsql 1. 2. 3. 4. С данными: Код: sql 1. 2. 2. Есть функция, которая наполняет данную таблицу данными: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 3. Есть представление, при обращении к которому вызывается функция и выборка из агрегирующей таблицы: Код: sql 1. 2. 3. 4. 5. 6. Но теперь самое интересное: 1. Выборка из таблицы возвращает следующие данные: Код: sql 1. 2. 3. 2. Запрос к представлению, возвращает те же данные и строку, содержащую результат выполнения функции: Код: sql 1. 2. 3. 4. Но таблица уже содержит ещё одну строку с данными, добавленную при выполнении функции: Код: sql 1. 2. 3. 4. Вопрос: Возможно ли реализовать представление так, чтобы выборка из агрегирующей таблицы при запросе к представлению уже содержала данные, добавленные при при вызове функции, так же вызванной при запросе к представлению? Т.е. что бы при данных в агрегирующей таблице: Код: sql 1. 2. 3. Результат обращения к представлению был: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.09.2017, 13:47
|
|||
|---|---|---|---|
|
|||
trigger before select |
|||
|
#18+
Жесть. Посмотрите лучше на конвейерные функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&mobile=1&tid=1885249]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 530ms |

| 0 / 0 |
