查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
拉乌尔·西约里亚
新的用户
.jpg)
已加入:2007年1月8日 帖子:11 地点:海得拉巴
|
|
|
|
大家好,
我是这里的新用户,如果我在这里犯任何错误,请原谅我。
我有一个输入文件,可以显示一个或多个记录。
例:
码: |
选择*从表1
WHERE ID ='001'
AND NAME ='DUMMY';
选择*从表2
WHERE ID ='002'
AND NAME ='DUMMY'
AND SURNAME ='TEST'; |
现在,我想将这些输入SQL记录分成不同的输出文件,并执行它们以从DB2表中卸载数据。
我找到了一个帖子,他们在其中分隔输入记录,并构建JCL来卸载数据。但是在那篇文章中,他们只有一条记录作为一条记录,第二条记录则位于第二行,依此类推。
我不知道如何使用SORT中可用的WHEN = GROUP选项。
请提出建议。
编码 |
|
回到顶部 |
|
 |
特里·海因兹
JCLModerator
已加入:2008年7月14日 帖子:1249 地点:美国明尼苏达州里奇菲尔德
|
|
|
|
有助于提高可读性的一件事是使用Code标签。单击代码之前的代码,然后在末尾再次进行代码。这样可以保留字符之间的实际间距。请参阅常见问题解答,并阅读有关格式和主题类型的信息。 |
|
回到顶部 |
|
 |
拉乌尔·西约里亚
新的用户
.jpg)
已加入:2007年1月8日 帖子:11 地点:海得拉巴
|
|
|
|
感谢您的建议特里。我将使用相同的方式继续前进。 |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
码: |
OPTION COPY
INREC IFTHEN=(WHEN=GROUP,
BEGIN=(1,8,CH,EQ,C'SELECT '),PUSH=(81:ID=1)) |
这将在两组记录中的第1列(我假设为F 80记录)中从1开始增加数字。
然后:
码: |
OUTFIL FNAMES = DBSEL1,
INCLUDE=(81,1,CH,EQ,C'1'),
BUILD=(1,80)
OUTFIL FNAMES = DBSEL2,
SAVE,
BUILD=(1,80) |
这会将第一组记录放到DD DBSEL1上,扩展指示符为“ 1”,第二组记录(第一个OUTFIL不接受的任何记录)放到DBSEL2上。
BUILD将再次将记录减小到其原始大小。 |
|
回到顶部 |
|
 |
拉乌尔·西约里亚
新的用户
.jpg)
已加入:2007年1月8日 帖子:11 地点:海得拉巴
|
|
|
|
引用: |
感谢比尔的答复。
但是在我的场景中,我不确定要输入多少个SQL。它可以是1,2或更多。
所以我想要动态JCL,它将根据输入文件中存在的SQL数量来分离输入SQL,然后生成动态JCL以根据输入SQL从DB2表中卸载数据。 |
最终目标->1.主JCL将读取输入文件,提取第一个SQL,准备动态JCL以根据第一个SQL从DB2表中卸载数据。
2.然后从输入文件中读取第二条SQL,准备动态SQL以基于第二条SQL从DB2表中卸载数据。
3.此过程应重复进行,直到EOF。
注意:每个SQL以“ SELECT”开头,以“;”结尾[/ quote] |
|
回到顶部 |
|
 |
|