Как просмотреть определение триггера в AS400

Я пытался просмотреть определение триггера для триггера для AS400 и не могу найти команду, которая помогла бы мне это сделать. Я могу перечислить триггеры, создать или удалить их, но как просмотреть определение триггера.


person Xombeh    schedule 08.10.2014    source источник
comment
Одним из вариантов является бесплатная утилита LSTFFD, которую мы предлагаем по адресу www.bvstools.com/lstffd.html. Он не только отображает определение файла, ключи, логику, но и триггеры.   -  person bvstone    schedule 08.10.2014


Ответы (4)


DSPFD FILE(LIB/FILE) TYPE(*TRG) предоставит вам основную информацию о том, какая программа вызывается и когда срабатывает триггер.

person David G    schedule 08.10.2014
comment
Но он не предоставляет Trigger Definition. - person user2338816; 10.10.2014
comment
Уточните, пожалуйста, что вы подразумеваете под «определением триггера». - person David G; 10.10.2014
comment
Образец определения добавлен к моему ответу. - person user2338816; 11.10.2014

Используйте Навигатор iSeries, чтобы перейти к соединению в элементе Базы данных. Под соответствующей схемой щелкните Триггеры. Затем щелкните правой кнопкой мыши интересующий вас триггер и выберите «Определение».

При просмотре списка триггеров просмотрите столбец «Тип», чтобы узнать, является ли ваш триггер «SQL» или «Внешний». «Внешний» триггер записывается на языке HLL, таком как RPG, C, COBOL или другом. Чтобы увидеть внешнее определение, вам нужно найти источник, который использовался для компиляции. Команда DSPPGM может вывести список модулей программы и показать вам, где может находиться источник.


Доступ к тривиальному примеру определения триггера SQL с помощью iNav можно получить следующим образом:

После детализации щелкните правой кнопкой мыши нужный триггер и выберите «Определение». Вкладка Общие определения выглядит следующим образом: Вкладка Общие

И вкладка SQL может быть: вкладка SQL

Этот пример SQL-триггера просто отправляет сообщение в очередь сообщений при выполнении INSERT.

Внешний триггер покажет название программы. Из описания программы можно было проследить до источника.

person user2338816    schedule 08.10.2014

Информация TRIGGER доступна из каталога VIEWs, как и в любой другой DB2; т. е. DB2 для i ["для AS400" из OP] мало чем отличается от других вариантов DB2 [LUW и для z] или других СУБД, которые предлагают доступ к метаданным и аналогичной информации через свои каталоги SQL. ответ, описывающий, как найти\представить информацию TRIGGER с помощью функции iNav->Database, представляет собой всего лишь один конкретный путь, по которому можно следовать для получения информации из каталогов; в более общем случае те же данные могут быть напрямую запрошены с помощью SQL SELECT данных каталога.

Столбец ACTION_STATEMENT [для ТЕКСТА] представления каталога SYSTRIGGER может быть тем, на что OP ссылается, по крайней мере частично, как «Определение триггера». Конечно, определяющие аспекты TRIGGER гораздо больше, чем просто эффективное определение процедуры, включая такие детали, как ACTION_TIMING, который описывает, выполняются ли действия ДО или ПОСЛЕ события триггера, определенного для любой из INSERT, UPDATE или INSTEAD.

Следующие документы относятся к каталогам в целом и конкретно к каталогу SYSTRIGGERS:
http://www.ibm.com/support/knowledgecenter/api/content/ssw_ibm_i_71/db2/rbafzcatalogtbls.htm
http://www.ibm.com/support/knowledgecenter/api/content/ssw_ibm_i_71/db2/rbafzcatsystrigger.htm

person CRPence    schedule 18.04.2015

Вы можете получить определение триггера, используя QSYS2.GENERATE_SQL().

person David G    schedule 07.02.2018