|
|
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
Господа можно-ли, каким-нибудь образом отследить в теле тригера, какая процедура его запустила ? Что-бы в одних случаях он работал в других нет ? Что-то типа : if <????> then тело триггера; end if; <????> Кто вызвал срабатывание тригера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 17:56 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
хм, странный вопрос Если триггер before update запустить его может только update :-\ Либо я что-то не понял Что значит "какая процедура"??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:03 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
Вообщето табличный триггер срабатывает после или перед insert\update\delete А вот какая процедура инициировала эти транзакции, ему (триггеру) до лампочки...или я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:04 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
Приношу извенения за некорретно поставленный вопрос :) Пример : Table QQQ ( Field_1 number, Field_2 number ) Procedure Nom 1 begin update QQQ set Field_2 = 100 where Field_1 = 1; end; Procedure Nom 2 begin update QQQ set Field_2 = 200 where Field_1 = 1; end; В теле тригера хочу определить какая процедура делает update ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:07 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
ааа именно ПРОЦЕДУРА как объект бд . Как вариант могу предложить устанавливать какой-то контекст в пределах сессии, а в триггере его читать ну и делать что нужно :-) Может отцы посоветуют менее "экстремальный" вариант ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:08 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
А по конкретнее можно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:10 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
извени, не могу ;-) я не волшебник а только учусь, так что с вопросами про установку и чтение контекстов - к документации или к отцам. могу только посоветовать почитать доки по DBMS_SESSION в частности DBMS_SESSION.SET_CONTEXT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:24 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
Для этих целей создан пакет dbms_application_info. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:33 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
Может лучше так: определи в пакете переменную - "защелку". В тех процедурах, где требуется обойти действия, выполняемые триггером, взводи ее. А в самом триггере, перед выполением действий, проверяй: если защелка выставлена, то ничего не делай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:36 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
dbms_application_info и выставляет такие защелки. Кстати, еще сразу видно по V$-вьюшкам, какая процедура/модуль работают. Не помню точно, но кажется и в аудит эта информация попадает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 18:39 |
|
||
|
Временное отключение тригера befor update
|
|||
|---|---|---|---|
|
#18+
Спасибо, разобрался. Делаю ч/з защелку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 12:12 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32139172&tid=1990973]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 346ms |

| 0 / 0 |
