Получить вывод в REXX из команды DB2 - PullRequest
0 голосов
/ 29 августа 2018

Я бы хотел использовать Rexx для захвата вывода следующих команд:

QUEUE "-DIS DATABASE(*) SPACENAM(*) RESTRICT(CHKP,COPY)"
QUEUE "END"                                             
ADDRESS TSO "DSN SYSTEM(DB2D)"

Есть ли способ получить имя таблиц, выводимых вышеприведенными командами, которые отображаются в переменной или какой-либо другой конструкции, чтобы данными можно было манипулировать программно?

С уважением

1 Ответ

0 голосов
/ 30 августа 2018

Функция OUTTRAP должна перехватывать выходные данные команды DSN. OUTTRAP предназначен для TRAP ввода OUT большинства команд TSO. Вывод помещается в переменную (обычно переменную основы), которую вы предоставляете. (Некоторые команды TSO не могут быть перехвачены; это обсуждается в другом месте в справочнике TSO / E REXX .)

Принимая ваш код, как указано выше, мы можем объединить это:

ORC = OUTTRAP('O.')             /* preserve prior setting of OUTTRAP */
QUEUE "-DIS DATABASE(*) SPACENAM(*) RESTRICT(CHKP,COPY)"
QUEUE "END"                                             
ADDRESS TSO "DSN SYSTEM(DB2D)"
CALL OUTTRAP ORC                /* restore OUTTRAP setting */
DO #O = 1 TO O.0                /* The 0 entry by convention has the number of records */
  /* You can PARSE, analyze, or do whatever here */
  SAY "O."'#O "='"O.#O"'"         /* example */
END #O                          /* end the loop */

OUTTRAP - очень мощная функция при написании скриптов в TSO / E REXX.

...