powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как в DB2 посмотреть SQL-текст триггеров, у которых SYSTRIGGERS.ACTION_STATEMENT=NULL?
4 сообщений из 4, страница 1 из 1
Как в DB2 посмотреть SQL-текст триггеров, у которых SYSTRIGGERS.ACTION_STATEMENT=NULL?
    #39901617
SBremen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую участников узкого круга специалистов по DB2.
В системе IBM DB2 for i v7.2 есть таблица, для которой создано несколько триггеров.
Нужно понять, какие действия выполняются триггерами при DML-операциях с таблицей.

Описание триггеров можно взять из системного каталога QSYS2.SYSTRIGGERS.
SQL-тело триггера находится в поле ACTION_STATEMENT.
Но в SQL Reference про это поле написано:
"Text of the SQL statements in the trigger action.
If this is an obfuscated trigger, the text starts with the WRAPPED keyword and is followed by the encoded form of the statement text.
Contains the null value if this is a trigger created via the ADDPFTRG command ."

И для всех триггеров нужной таблицы в этом поле стоит NULL.
Вопрос : где и как в базе данных DB2 for i посмотреть SQL-текст таких триггеров (вероятно, созданных командой ADDPFTRG)?
Менеджер базы данных ведь откуда-то берет SQL-текст для исполнения этих триггеров.
Желательно получить доступ к триггерам средствами SQL. При необходимости - доступ к терминальным утилитам AS400 ACS есть.
...
Рейтинг: 0 / 0
Как в DB2 посмотреть SQL-текст триггеров, у которых SYSTRIGGERS.ACTION_STATEMENT=NULL?
    #39903049
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SBremen,

Добрый день

Скорее всего, логика заключена в программе с именем TRIGGER_PROGRAM_LIBRARY/TRIGGER_PROGRAM_NAME - это поля таблицы QSYS2.SYSTRIGGERS .
Там не обязательно SQL запросы. Это программа на внешнем языке программирования.
Вы не сможете посмотреть логику, если у вас нет исходного текста этой программы.
...
Рейтинг: 0 / 0
Как в DB2 посмотреть SQL-текст триггеров, у которых SYSTRIGGERS.ACTION_STATEMENT=NULL?
    #39903766
SBremen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark , благодарю за ответ.
Этого я и опасался.
В перечне объектов схемы с именем из TRIGGER_PROGRAM_NAME есть объект с именем из TRIGGER_PROGRAM_LIBRARY, у которого OBJTYPE = "*PGM" и OBJATTRIBUTE = "RPGLE".

Никогда не сталкивался с языком программирования RPG LE.
Не знаю, кто писал эту программу для триггера и где ее исходный код.

Я правильно понимаю, что такой триггер остается "черным ящиком" и из самой базы данных больше ничего нельзя вытащить, чтобы понять, что и как этот триггер делает?
Известно только, что он синхронизирует данные своей таблицы с несколькими другими таблицами по определенным правилам (которые как раз и нужно узнать), т.е. его логика должна быть не тривиальная.
...
Рейтинг: 0 / 0
Как в DB2 посмотреть SQL-текст триггеров, у которых SYSTRIGGERS.ACTION_STATEMENT=NULL?
    #39903864
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SBremen
Я правильно понимаю, что такой триггер остается "черным ящиком" и из самой базы данных больше ничего нельзя вытащить, чтобы понять, что и как этот триггер делает?
Да, правильно.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как в DB2 посмотреть SQL-текст триггеров, у которых SYSTRIGGERS.ACTION_STATEMENT=NULL?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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