我必须完成3项任务:
插入,删除和写入
我不确定最好的方法是什么。我的大型机程序设计技巧不是太紧,所以我一直在寻找建议。
我可以避免为此做一个COBOL程序吗? 我看到它的方式,我只需要执行SQL语句的JCL。如果我正确地设计我的陈述,那么他们应该能够以这种方式预先形成任务1和2。但我想我可能需要一个COBOL程序来写一个文件?
我将概述3个任务的思考过程。每个任务看起来都很相似,但是它们会查询不同的结果,因此SQL语句非常不同。但他们都在使用同一张桌子。
任务1:
- 执行SQL查询
- 对于查询选取的每一行
- - 根据该行插入一个新行
任务2:
- 执行SQL查询
- 对于查询选取的每一行
- - 删除记录
任务3:
- 执行SQL查询
- 对于查询选取的每一行
- - 将该记录写入文件
答案 0 :(得分:9)
您不能仅使用JCL执行这些任务,JCL(主要是)只会导致程序执行。为了完全准确,JES在解释JCL时执行这些功能。
现在,您可以使用现有的实用程序或一组实用程序来避免编写程序。
例如,SyncSort可以执行SELECT语句并将结果写入文件。
例如,DSNTEP4可以批量执行包含DELETE,UPDATE和INSERT语句的SQL语句。所以你可以在没有编写 COBOL(或汇编程序,或PL / I,或C / C ++,或Rexx等)程序的情况下执行此操作,只是不是没有执行一个程序。
答案 1 :(得分:1)
您无法在JCL中编写程序来执行您需要的操作,因为JCL旨在定义和提交作业,而不是通用编程。您可以使用任何支持的大型机语言来访问DB2,因此您可以使用COBOL,Java,C,C ++等编写程序。然后,您需要编写JCL来执行该程序。 JCL将列出所有必需的信息,例如程序的参数,以及输入/输出所需的数据集。
答案 2 :(得分:1)
DB2(以及大多数其他数据库)具有可以通过JCL运行任意SQL语句的批处理或命令行实用程序。这是最简单的方法,只需要JCL和一些控制语句。您可能还有一些来自CA,BMC或IBM的DB2管理工具,它们也允许处理任意查询。诀窍是将您的需求表达为SQL查询,没有额外的逻辑(鉴于您已经记录的要求,我认为这绝对是可能的)。