2

我必须执行 3 个任务:
插入、删除和写入

我不确定最好的方法是什么。我的大型机程序设计技能不是太紧,所以我正在寻求建议。

我可以避免为此做一个 COBOL 程序吗?
在我看来,我只需要执行 SQL 语句的 JCL。如果我正确地设计了我的陈述,那么他们应该能够以这种方式执行任务 1 和 2。但我想我可能需要一个 COBOL 程序来写入文件?

我将概述我对这 3 个任务的思考过程。每个任务看起来都差不多,但是它们查询的结果不同,所以 SQL 语句有很大的不同。但他们都在同一张桌子上工作。

任务 1: -
执行 SQL 查询
-对于查询选取的每一行
--根据该行插入一个新行

任务 2:-执行 SQL 查询
-对于查询提取的每一行
--删除记录

任务 3: -
执行 SQL 查询
-对于查询获取的每一行
--将该记录写入文件

4

3 回答 3

10

您不能仅使用 JCL 执行这些任务,JCL(大多数情况下)只会导致程序执行。为了完全准确,JES 在解释 JCL 时执行这些功能。

现在,您可以避免使用现有实用程序或一组实用程序来编写程序。

例如,SyncSort 可以执行 SELECT 语句并将结果写入文件。

例如,DSNTEP4 可以批量执行 SQL 语句,包括 DELETE、UPDATE 和 INSERT 语句。

因此,您可以在不编写COBOL(或汇编程序、PL/I、C/C++ 或 Rexx 等)程序的情况下执行此操作,而无需执行程序。

于 2012-07-10T14:00:40.133 回答
2

您无法在 JCL 中编写程序来完成您需要的工作,因为 JCL 是为定义和提交作业而设计的,而不是通用编程。您可以使用任何受支持的 Mainframe 语言来访问 DB2,因此您可以使用 COBOL、Java、C、C++ 等编写程序。然后您需要编写 JCL 来执行该程序。JCL 将列出任何所需的信息,例如程序的参数,以及输入/输出所需的数据集。

于 2012-07-10T13:27:04.453 回答
2

DB2(和大多数其他数据库)具有可以通过 JCL 运行任意 SQL 语句的批处理或命令行实用程序。这是最简单的方法,只需要 JCL 和一些控制语句。您可能还拥有一些来自 CA、BMC 或 IBM 的 DB2 管理工具,它们也允许处理任意查询。诀窍是将您的需求表达为一个 SQL 查询,而无需额外的逻辑(鉴于您记录的需求,我相信这绝对是可能的)。

于 2012-07-11T20:25:04.880 回答