我有一个有多行数据的数据集,我必须对这些行中的一些行做些什么(不是所有的,没有逻辑能够把它们挑出来),我有一个必须选择的行号列表,这个列表太大了,不能手动复制它们。
那么,有没有人知道dfsort命令,例如,可以从这一位数据中获取记录:
parameter10000500006
parameter20000100002
parameter30000400007
parameter40000000006
parameter50000100001
parameter60000500012
parameter70000700013并且只返回第二个和第三个,例如:
parameter20000100002
parameter30000400007发布于 2015-07-13 17:37:03
弄清楚了,显然你需要结合使用一个outfile与STARTREC和ENDREC,所以现在我只需要为我需要的每条记录创建一堆outfile。
对于记录2和3,它可能看起来有点像这样:
//SYSIN DD *
SORT FIELDS=(1,1,CH,A)
OUTFIL STARTREC=2,ENDREC=3
/*发布于 2015-07-13 18:54:23
如果您想一次执行一个操作,最好使用选项SKIPREC=1,STOPAFT=2:
OPTION SKIPREC=1,STOPAFT=2,COPY在您的答案中,您只显示了一条简单的输出语句,从第一列开始。所有排序语句都必须在第一列之后开始。必须始终有一个排序、合并或复制操作,无论是显式的还是隐式的,否则您的步骤将失败。
复制操作可以指定为OPTION COPY、SORT FIELDS=COPY或MERGE FIELDS=COPY。
在OPTION语句上执行此操作更好的原因是,数据将在可能的最早时刻被删除/包含。
例如,如果您有一个排序(非复制)操作,那么您的输出解决方案仍然可以工作,但是您需要在最终排除之前对整个文件执行SORTed操作。
当SKIPREC和STOPAFT不能用于您的任务时,通常会看到STARTREC和ENDREC,因为发生了排序或合并(因此您不知道哪条记录将是新数据中的第一条记录)。
在大型机数据集上,我们没有“行”的数据,我们有记录。如果您查阅文档了解如何处理“行”,您将会感到困惑,因为在DB2之外,这个术语充其量没有任何意义,或者在最坏的情况下不是您所认为的意思。
https://stackoverflow.com/questions/31379770
复制相似问题