从 DB2 命令获取 REXX 中的输出

Obtain output in REXX from DB2 Command

我想使用 Rexx 捕获以下命令的输出:

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

是否有任何方法可以获取上述命令输出的表的名称,这些表显示在变量或其他结构中,以便可以通过编程方式操作数据?

此致

OUTTRAP 函数应该捕获 DSN 命令的输出。 OUTTRAP 旨在 TRAP 大多数 TSO 命令的 OUTput。输出放在您提供的变量(通常是词干变量)中。 (无法捕获某些 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/EREXX中编写脚本时非常强大的功能。