powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / PL/SQL триггер на представление
23 сообщений из 23, страница 1 из 1
PL/SQL триггер на представление
    #40005493
Jack963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, если у кого идеи, Как создать триггер на представление, который бы реагировал бы на изменения таблиц на которых основано представление?
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005496
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jack963,

в чем подвох?

https://docs.oracle.com/database/121/TDDDG/tdddg_triggers.htm#TDDDG52800
Creating an INSTEAD OF Trigger

.....
stax
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005498
Агрох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свой триггер на каждую из таблиц представления?
Функция, которую запускают триггеры в таблицах представления?

На само представление триггер не вешается (вроде). Это же просто предзаготовленный запрос, а не какой то физический объект.
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005503
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jack963,

Что подразумевается под изменением?
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005505
Jack963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

Триггер на представление с INSTEAD OF, обрабатывает UPDATE, INSERT и DELETE с самим представлением, необходимо же поймать момент когда будут обновятся сами таблицы на которых основано представление.
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005507
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда и делайте триггеры на таблицы. В чем проблема, совершенно не понятно
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005508
Jack963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Агрох,

Если преставление будет основано на 10+ таблиц потребуется создавать множество триггеров, или же составной триггер. Нет ли варианта как то определить, что были изменены таблицы на которых основано представление.
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005509
Jack963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Под изменениями подразумевается UPDATE, INSERT, DELETE, MERGE с таблицами на которых основано представление
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005510
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jack963,

Запретить менять данные в таблицах кроме как через представление
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005511
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jack963,

не понял

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

.....
stax
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005513
Jack963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,
Необходимо поймать момент когда происходит изменение в таблицах на которых основано представление, и обработать данный момент, далее уже определить в какой именно таблице произошли изменения и обработать его. То есть заранее не известно на какие именно использует таблицы представление, поэтому создать триггер на каждую таблицу не получится.
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005514
Агрох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jack963
Нет ли варианта как то определить, что были изменены таблицы на которых основано представление.


Насколько я знаю такой возможности нет.
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005516
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подозреваю, что если представление материализованное, то возможно что-то можно выцепить через логи.

Но вообще, задача не понятна совершенно. Нафига это надо?
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005517
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть подозрение, что автор пытается или
" Continuous Query Notificatio n (CQN) allows an application to register queries with the database for either object change notification (the default) or query result change notification. An object referenced by a registered query is a registered object."
или Materialized view изобрести
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005519
Jack963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,
У пользователя есть grant на данное представление, и если происходит какое либо изменение данного представления пользователь хотел бы понять, что представление было изменено
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005520
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jack963,

Странная задача. А если под представлением ещё одно? Или pipeleined function? Или синоним?

Что именно должен узнать этот самый пользователь? Его интересует изменение каждой строки или сам факт, что изменение было? В каком виде он должен получить информацию?
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005521
Jack963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,
Сам пользователь должен узнать, что в какой либо таблице на котором основано представление, произошел INSERT, DELETE, UPDATE, ну то есть не обязательно должны меняться данные которые используются в представлении.
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005522
Jack963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env, Неважно сколько строк было изменено, важен сам факт изменения таблицы.
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005527
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jack963,

изменения фиксируются по commit
скажите архитектору, что реализовать мож и можно, но
сложно,
не надежно,
будет тормозить
и тд

пусть отказывается от идеи

.....
stax
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005528
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jack963
env,
Сам пользователь должен узнать, что в какой либо таблице на котором основано представление, произошел INSERT, DELETE, UPDATE, ну то есть не обязательно должны меняться данные которые используются в представлении.
ну допустим вы сделали триггер. дальше что? для чего вы это хотите? какая задача решается?
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005530
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jack963
Сам пользователь должен узнать, что в какой либо таблице на котором основано представление, произошел INSERT, DELETE, UPDATE, ну то есть не обязательно должны меняться данные которые используются в представлении.


А если под вьюхой будет external table? Итоговая задача какая? Для чего это пользователю?
Если так необходимо знать факт изменений в таблицах, то вешайте аудит на них, а для вьюх уже по словарю смотрите, какие могло затронуть.
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005534
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кит северных морейдальше что? для чего вы это хотите?

Ну это же очевидно: обновить грид в приложении.

Аффтар, тебе уже сказали о Continuous Query Notification.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
PL/SQL триггер на представление
    #40005572
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jack963
Здравствуйте, если у кого идеи, Как создать триггер на представление, который бы реагировал бы на изменения таблиц на которых основано представление?


Это звучит как попытка синхронизировать данные между чем-то и SQL таблицами.

Как задача поставлена, она не решается в общем случае. Пример: ваше представление включает виртуальные колонки таблиц (меняются без уведомлений) или внешние таблицы (меняются без уведомлений).

Возможно, если вы опишите свою задачу, появятся решения которые не требуют триггер на представление.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / PL/SQL триггер на представление
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]