在IBM i (AS400) DB2中导入/导出CSV


import/export CSV in IBM i (AS400) DB2

我正在为即将到来的集成项目做准备,我需要将一些数据从我们的ERP导入/导出到文件系统。我们在IBM iSeries/AS400 V6R1机器上运行JD Edwards World 9.2。

我们正在集成的软件,要求我们集成使用CSV文件,这些文件可以定时导出/导入,并通过SFTP访问。

我已经安装了zend服务器(apache),并且很高兴使用apache, PHP和SQL,但对CL和RPG编程几乎一无所知(但愿意学习)。我们也没有WebQuery。导出的文件需要连接和过滤表之间的数据,因此需要SQL或类似的东西,所以我希望不是一个直接的CPYTOIMPF。

作为一个非常粗略的大纲,我认为我可以编写一个快速的php文件,该文件将运行sql查询以将结果解析为IFS中的csv,反之亦然,由cron'd wget(或ibm等效)加载。

在我开始之前,我想看看是否有人能推荐一个更好的方法

你会推荐什么策略和/或链接?cron和wget的等价物是什么?

cron等价的将是作业调度器。IBM提供了两种版本,一种是包含在每个系统中的基本版本"处理作业计划条目(WRKJOBSCDE)",另一种是高级作业调度器"使用作业调度器(WRKJOBJS)处理作业"

您也可以在您的系统上有一个或多个第三方调度器。

操作系统中没有相应的wget。有各种各样的第三方实用程序,甚至还有一些免费和/或开源实用程序。还可以在PASE中安装和使用AIX版本的wget。
http://yips.idevcloud.com/wiki/index.php/PASE/PackageManager

现在就导入/导出而言。IBM当然提供了CPYTOIMPF和CPYFRMIMPF命令。但出于性能和错误处理的灵活性考虑,许多人更喜欢使用自己的RPG。PHP是您的另一种选择。

还有几个要点…

虽然这是真的,CPYTOIMPF不支持查询。它支持从SQL视图进行复制。因此,只要您能够构建一个视图来提供您所提到的"连接和过滤",那么CPYTOIMPF就可以工作。

最后,IBM确实包含了一个"运行SQL语句"(RUNSQLSTM)命令,该命令将执行包含在源文件成员中的SQL语句;包括INSERT INTO somefile (SELECT ...),这样您就可以加载一个物理表,然后可以对其使用CPYTOIMPF。此外,在该源成员中,您可以通过使用CL:

作为前缀来包含CL命令。

System I Navigator具有'Run SQL Scripts'工具。这个工具有一个保存结果的选项,其中一个选项是保存到csv文件。