【问题标题】:Data Transfer from IBM i (AS400) export multiple filesIBM i (AS400) 的数据传输导出多个文件
【发布时间】:2017-11-08 00:42:32
【问题描述】:

我正在使用数据传输工具将文件从 AS400 导出为 CSV。有 500 多个文件要导出,我希望有一种方法可以同时对多个文件执行此操作。

我已尝试将传输选项保存为 .TTO,但我仍然只能一次处理一个文件。我可以使用 .bat 来执行多个 .TTO 文件,但仍需要为每个文件生成一个 .TTO。

任何想法将不胜感激。

【问题讨论】:

    标签: ibm-midrange db2-400 iseries-navigator


    【解决方案1】:

    我不知道执行此操作的任何命令,或任何第三方工具,但如果您愿意编写一个 .bat 程序来执行此操作,为什么不使用带有 CPYTOIMPF 的 CL 程序来循环文件名并将 CSV 写入 IFS。如果您正确设置 QNTC,甚至可以将其定向到网络共享。

    下面是一些示例代码:

    pgm
      dclprcopt  log(*no) +
                 dftactgrp(*no) actgrp(*new)
    
      dclf explstf
      dcl  &ifspath      *char  64  value('/ifspath/')
      dcl  &ifsname      *char  64
    
      dowhile cond('1')
        rcvf
        monmsg msgid(CPF0864) exec(leave)
    
        chgvar &ifsname (&ifspath |< &filename |< '.csv')
        cpytoimpf  fromfile(&filelib/&filename) +
                     tostmf(&ifsname) mbropt(*replace) +
                     stmfccsid(*pcascii) +
                     rcddlm(*crlf) dtafmt(*dlm) +
                     strescchr(*strdlm) rmvblank(*trailing)
      enddo
    
    out:
    endpgm
    

    &amp;filename&amp;filelib 将是文件 explstf 中的字段。

    注意:CPYTOIMPF 不需要任何特殊的定义文件,因此您可以将其与 500 多个文件一起使用而无需太多工作。

    【讨论】:

    • 使用系统自带的工具肯定有话要说,CPYTOIMPF 自从我第一次接触它(在V5R2 中)以来已经取得了长足的进步。那时,它不仅生成对 Excel 友好的输出,而且还需要大量的工作存储空间并且需要很长时间才能执行。 (在 Python 中执行任务更快。)如今它可能会或可能不会更有效。我没有检查。它可能会或可能不会在某些数字极端情况下遇到问题。
    • 有一段时间,在 V4 中,我用嵌入式 SQL 在 RPG 中编写了自己的替换 CPYTOIMPFCPYFRMIMPF。但我今天不会这样做。内置工具太容易使用了,我对它们的输出不再有任何问题。
    【解决方案2】:

    可能与 SO 无关……

    但请看一下 5250 会话中的复制到导入文件 (CPYTOIMPF) 命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多