首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅获取记录nr。X通过在JCL中使用dfsort

仅获取记录nr。X通过在JCL中使用dfsort
EN

Stack Overflow用户
提问于 2015-07-13 17:29:19
回答 2查看 933关注 0票数 0

我有一个有多行数据的数据集,我必须对这些行中的一些行做些什么(不是所有的,没有逻辑能够把它们挑出来),我有一个必须选择的行号列表,这个列表太大了,不能手动复制它们。

那么,有没有人知道dfsort命令,例如,可以从这一位数据中获取记录:

代码语言:javascript
复制
parameter10000500006
parameter20000100002
parameter30000400007
parameter40000000006
parameter50000100001
parameter60000500012
parameter70000700013

并且只返回第二个和第三个,例如:

代码语言:javascript
复制
parameter20000100002
parameter30000400007
EN

回答 2

Stack Overflow用户

发布于 2015-07-13 17:37:03

弄清楚了,显然你需要结合使用一个outfile与STARTREC和ENDREC,所以现在我只需要为我需要的每条记录创建一堆outfile。

对于记录2和3,它可能看起来有点像这样:

代码语言:javascript
复制
//SYSIN DD *
 SORT FIELDS=(1,1,CH,A)
 OUTFIL STARTREC=2,ENDREC=3
/*
票数 0
EN

Stack Overflow用户

发布于 2015-07-13 18:54:23

如果您想一次执行一个操作,最好使用选项SKIPREC=1,STOPAFT=2:

代码语言:javascript
复制
 OPTION SKIPREC=1,STOPAFT=2,COPY

在您的答案中,您只显示了一条简单的输出语句,从第一列开始。所有排序语句都必须在第一列之后开始。必须始终有一个排序、合并或复制操作,无论是显式的还是隐式的,否则您的步骤将失败。

复制操作可以指定为OPTION COPYSORT FIELDS=COPYMERGE FIELDS=COPY

在OPTION语句上执行此操作更好的原因是,数据将在可能的最早时刻被删除/包含。

例如,如果您有一个排序(非复制)操作,那么您的输出解决方案仍然可以工作,但是您需要在最终排除之前对整个文件执行SORTed操作。

当SKIPREC和STOPAFT不能用于您的任务时,通常会看到STARTREC和ENDREC,因为发生了排序或合并(因此您不知道哪条记录将是新数据中的第一条记录)。

在大型机数据集上,我们没有“行”的数据,我们有记录。如果您查阅文档了解如何处理“行”,您将会感到困惑,因为在DB2之外,这个术语充其量没有任何意义,或者在最坏的情况下不是您所认为的意思。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31379770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档