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

в чем подвох?

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

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

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

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

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

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

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

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

не понял

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

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


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

Но вообще, задача не понятна совершенно. Нафига это надо?
...
Рейтинг: 0 / 0
05.10.2020, 16:52
    #40005517
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL триггер на представление
Есть подозрение, что автор пытается или
" 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
05.10.2020, 16:53
    #40005519
Jack963
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL триггер на представление
Leonid Kudryavtsev,
У пользователя есть grant на данное представление, и если происходит какое либо изменение данного представления пользователь хотел бы понять, что представление было изменено
...
Рейтинг: 0 / 0
05.10.2020, 17:01
    #40005520
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL триггер на представление
Jack963,

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

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

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

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

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


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

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

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


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

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

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


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