powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Получение текста WHEN из тела триггера
3 сообщений из 3, страница 1 из 1
Получение текста WHEN из тела триггера
    #39636112
DB2_need_advice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите, есть ли существующее решение (например. при помощи xml) из поля "text" в "syscat.triggers" получить текст условия в WHEN.
Например, из триггера:
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TRIGGER TR_INSERT
     BEFORE INSERT ON DB2_COPY.TRIG_TABLE
     REFERENCING NEW AS NEW OLD AS OLD
     FOR EACH ROW
     WHEN ((NEW.AMOUNT < 0) OR (NEW.AMOUNT is NULL))
       SET NEW.AMOUNT = 0;
получить запросом

Код: plaintext
((NEW.AMOUNT < 0) OR (NEW.AMOUNT is NULL))
...
Рейтинг: 0 / 0
Получение текста WHEN из тела триггера
    #39636724
DB2_need_advice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще был бы очень благодарен за подсказку, что делать в такой ситуации.

Пытаюсь выделить часть UPDATE OF из тела триггера при помощи:

Код: plaintext
1.
select xmlquery( 'fn:matches( $TEXT, ''^CREATE.+\sUPDATE\s+OF\s(.+)\sON\s.+\sBEGIN\s.+$'', ''si'' )' passing t.text as "TEXT")
from syscat.triggers t

При выполнении запроса возникает ошибка:
Код: plaintext
1.
Lookup Error - DB2 Database Error: ERROR [08001] [IBM][DB2/NT64] SQL30081N  A communication error has been detected. Communication protocol being used: "TCP/IP".  Communication API being used: "SOCKETS".  Location where the error was detected: "91.222.250.86".  Communication function detecting the error: "recv".  Protocol specific error code(s): "10054", "*", "0".
ERROR [58005] [IBM][DB2/NT64] SQL0902C  A system error occurred. Subsequent SQL statements cannot be processed. IBM software support reason code: "18".

И БД ложится напрочь.
Как мне кажется. что-то в настройках нужно добавить по памяти, но что ...
Буду благодарен за помощь.

Настройки БД:
Database server = DB2/NT54 9.1.C
...
Рейтинг: 0 / 0
Получение текста WHEN из тела триггера
    #39636741
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DB2_need_advice,

Ошибка - смотреть db2diag.log и, возможно, создавать PMR.

Парсить языковые конструкции регулярками - дорога в ад.
Как Вам, к примеру, такой триггер:
Код: sql
1.
CREATE TRIGGER "MY COOL UPDATE OF Trigger" ...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Получение текста WHEN из тела триггера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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