使用 DFSORT 进行大型机编程
Posted
技术标签:
【中文标题】使用 DFSORT 进行大型机编程【英文标题】:Mainframe programming using DFSORT 【发布时间】:2017-10-10 14:51:47 【问题描述】:我正在尝试向大型机文件添加标头,但发现:
SORT FIELDS=COPY
OUTFIL REMOVECC,
HEADER1=(1:C'COUNTRY_CODE',13:C',',14:C'CHECK_SEQ_NUMBER',30:C',',
31:C'FORM_INDICATOR')
OUTREC BUILD=(1:1,2,3:C',',4:4,5,9:C',',10:10,1,80:X)
我需要第 2 行和第 5 行吗?第5个会完成什么?
对不起,我正在学习如何为大型机编写代码。
【问题讨论】:
什么'标题'?这本身没有任何意义。编辑您的问题并告诉我们更多关于您想要做什么的信息。请收下tour,学习How to Ask。 我有一个文件输出,我需要在将其转换为 .csv 之前添加标题 文件看起来像" 210000000 Andres Gutierrez 123 N street apt. 3 威奇托 KS 100 100 英尺 WS 请实际阅读@greg-449 的cmets。和“编辑你的问题” 【参考方案1】:REMOVECC 中的 'CC' 代表回车控制字符。创建可打印报告需要这些字符。但是如果你不需要那个字符(我们大多不需要),那么你可以使用 REMOVECC 来抑制它们。因此,您可能希望保留第 2 行。
HEADER1 使用您提到的列构建标题,COUNTRY_CODE 等。此标题不存在于您的输入数据集中,因此您正在输出数据集中创建此新记录。
然后,您将通过 OUTREC 将输入记录复制到输出(在标题之后)。所以,你也想保留第 5 行。
.
【讨论】:
【参考方案2】:@William Edward Sanchez-Weeks ,当你用你拥有的数据和标题进行构建时,你也不需要通过计算位置来计算。 SORT 将在内部处理它。
您发布的分类卡:
SORT FIELDS=COPY
OUTFIL REMOVECC,
HEADER1=(1:C'COUNTRY_CODE',13:C',',14:C'CHECK_SEQ_NUMBER',30:C',',
31:C'FORM_INDICATOR')
OUTREC BUILD=(1:1,2,3:C',',4:4,5,9:C',',10:10,1,80:X)
可以写成
SORT FIELDS=COPY
OUTFIL REMOVECC,
HEADER1=(C'COUNTRY_CODE',C',',C'CHECK_SEQ_NUMBER',C',',C'FORM_INDICATOR')
OUTREC BUILD=(1,2,C',',4,5,C',',10,1,80:X)
两者都给出相同的结果。
【讨论】:
以上是关于使用 DFSORT 进行大型机编程的主要内容,如果未能解决你的问题,请参考以下文章
postgresql 对大型数据集进行分区并从一个类别中随机选择 3 个