Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Db2 COBOL程序,JCL作业,还是两者兼而有之?_Db2_Cobol_Mainframe_Jcl - Fatal编程技术网

Db2 COBOL程序,JCL作业,还是两者兼而有之?

Db2 COBOL程序,JCL作业,还是两者兼而有之?,db2,cobol,mainframe,jcl,Db2,Cobol,Mainframe,Jcl,我必须执行3项任务: 插入、删除和写入 我不知道最好的方法是什么。我的大型机程序设计技能不是很严格,所以我一直在寻求建议 我可以避免为此执行COBOL程序吗? 在我看来,我只需要执行SQL语句的JCL。如果我正确地设计了我的语句,那么它们应该能够以这种方式执行任务1和任务2。但我想我可能需要一个COBOL程序来写入文件 我将概述我对这3项任务的思考过程。每个任务看起来相似,但它们查询的结果不同,因此SQL语句非常不同。但他们都在同一张桌子上工作 任务1: -执行SQL查询 -对于查询拾取的每一行

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

我不知道最好的方法是什么。我的大型机程序设计技能不是很严格,所以我一直在寻求建议

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

我将概述我对这3项任务的思考过程。每个任务看起来相似,但它们查询的结果不同,因此SQL语句非常不同。但他们都在同一张桌子上工作

任务1:
-执行SQL查询
-对于查询拾取的每一行
--基于该行插入新行

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

任务3:
-执行SQL查询
-对于查询拾取的每一行

--将该记录写入文件

由于JCL是为定义和提交作业而设计的,而不是为通用编程,因此不能用JCL编写程序来完成所需的工作。你可以使用任何支持的大型机语言来访问DB2,这样你就可以编写一个COBOL、java、C++、C++等程序,然后你就需要编写JCL来执行这个程序。JCL将列出所有必需的信息,如程序的参数,以及输入/输出所需的数据集。

仅使用JCL无法执行这些任务,JCL(大部分)只会导致程序执行。为了完全准确,JES在解释JCL时执行这些函数

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

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

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


因此,您可以不用编写COBOL(或汇编程序,或PL/I,或C/C++,或Rexx等)程序来完成这项工作,只是不能不执行程序

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

你知道你说得很好。因为我真正做的只是一次完成一些DB2工作的工作,所以不必用COBOL来完成。谢谢你为什么在两个地方问这个?请用其中一种方式发帖,而不是两种方式。@Frantumn:你也可以试试
DSNTIAUL