powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / debug trigger
7 сообщений из 7, страница 1 из 1
debug trigger
    #35092969
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё один вопрос про триггеры.
Есть триггер со сложной логикой который не срабатывает. Мне нужно понять почему.
Я недавно начал работать с DB2 и очень прошу поделиться опытом отладки триггреров.
Из сторонних средств есть только DBArtisan но Debug не работает.

Мне нужно отследить что происходит с момента команды update до окончания транзакции.

Заранее очень благодарен за любые предложения
...
Рейтинг: 0 / 0
debug trigger
    #35093105
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не было никогда такой проблемы, может есть тулза какая...

Пришла в голову такая идея...
1. Создать табличку для данных "трассировки" =)))
Код: plaintext
1.
2.
create table test(
id integer not null generated always as identity,
step integer)!
2. Встроить операторы вставки в эту табличку в ключевых местах триггера
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create trigger mytrig
after update of salary on employee
referencing new as n old as o
for each row
mode db2sql
begin atomic
insert into test values (default,  1 );
if n.salary < o.salary
   then
   -- Any logic
   insert into test values (default,  2 );
end if;
insert into test values (default,  3 );
end!
3. Заставить триггер сработать. В зависимости от условий будет видно, что делал триггер и в какой ветке был.
В моем случае видно, что триггер срабатывал дважды, второй раз в ветке 2 не был.
Можно и данные сваливать, используемые на данном этапе.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select * from test

ID          STEP       
----------- -----------
           1             1 
           2             2 
           3             3 
           4             1 
           5             3 

   5  записей выбрано.
Но повторюсь ещё раз, я просто не знаю другого способа. Думаю, что кто-нибудь ещё подскажет лучше, что делать.
...
Рейтинг: 0 / 0
debug trigger
    #35093330
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо - старый дедовский и безотказный способ :-))
Наверное к нему и придётся прибегнуть за неимением чего-то другого
...
Рейтинг: 0 / 0
debug trigger
    #35093533
xz321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Триггер оттрасировать нельзя в DB2. Посмотри план запроса без тригера на таблице и стригером на таблице. Все тригеры на таблицах оптимизируются в тело запроса. Другой вопрос зачем тебе нужен тригер, в DB2 можно и без них ингода обходится.
...
Рейтинг: 0 / 0
debug trigger
    #35095409
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xz321 Другой вопрос зачем тебе нужен тригер, в DB2 можно и без них ингода обходится.
Так система написана - много логики реализовано на триггерах. Логика сложная и триггеры длинные. Наличие Debug инструмента здорово бы помогло, но, как я раньше писал, debug DBArtisan не работает. Ставить сторонние инструменты запрещено политикой организации. Остаются либо какие-нибудь трассирующие средства DB2 либо самому писать трассирующий код записывающий происходящее в триггере в специально созданной для этого таблице.

Перед тем как самому писать трассирующий код, хотелось бы знать - есть ли стандартные решения. Кажется, что нет.
...
Рейтинг: 0 / 0
debug trigger
    #35095582
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, кстати, процедурки для трассировки процедурок с той же идеей, но в другом исполнении... =))))
Не триггера, но по трассировке...
Мало ли, может пригодится кому.
SQL Procedures tracing
...
Рейтинг: 0 / 0
debug trigger
    #35097108
чя321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эта функциональность включена в IBM DataStudio
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / debug trigger
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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