如何在变量块文件中检查从位置 68 到 69 的 Null(或值 '1' '2 以外的值)。记录可能在位置 27 之前结束



我需要获得688位置中除"1"或"2"以外的任何值的计数。

在JCL中通过Easytrieve或SORT是否可能?我已经这样做了

-[653位置上的字符不应为空格AND(复选框688 NE 1'和'688 NE'2']

 INCLUDE COND=
             ((653,5,CH,NE,C'     ',AND,((688,2,CH,NE,C '1 ',AND,688,2,CH,NE,C '2 ')))

我们能以更高效的方式还是其他方式来做这件事?

您可以通过使用OMIT而不是INCLUDE来简化人类的理解,以消除负面条件。

OPTION COPY,VLSCMP
OMIT COND=(653,5,CH,EQ,C' ',
         OR,
           688,2,CH,EQ,C '1 ',
         OR,
           688,2,CH,EQ,C '2 ')

可以使用字段类型SS来合同688位置的测试,但如果您的数据可疑,我会对此持谨慎态度(只有在您确定可能存在哪些值时才使用SS(。

在我看来,可以通过使用SORT符号来简化它,以避免重复和随之而来的错误。

由于您有可能妨碍(导致步骤失败(的短记录,我包含了OPTION VLSCMP。这将用二进制零填充INCLUDE/OMIT上未包含在记录中的所有字段(因为记录很短(。因此,所有空间为653,5的记录都将被删除,所有在688,2不是C'1'或C'2'的记录将被删除。所有短记录都将被包括在内,因为将不满足删除的标准(INCLUDE/OMIT上的比较字段将为二进制零(。一个包含653,5空格的短记录将被省略。如果这不是你想要的,可以通过延长条件来解决。

如果您需要一个可以轻松完成的格式化计数,但如果您只是在调查,那么系统输出中的默认计数很容易就能满足您的需求。

是的,可以在排序或easytrieve 中计算符合条件的记录数

  1. 轻松-非常轻松查看手册-https://www.google.com.au/?gfe_rd=cr&ei=hUBnU-XbOfC8gep74GIBg#q=易检索+手动
  2. 大多数排序实用程序都有一些可以使用的报告功能,对于DFSort(http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.icea100/ice1ca40124.htm)选项。即使没有报告功能,也可以在两步流程中完成

    • 选择所需的记录并重新格式化,并包括一个二进制字段(使用outrec值为1,请参阅http://pic.dhe.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.icea100%2Fice1ca50263.htm
    • 从第一步开始对文件进行排序和

    大致分类为:

//STEP1 EXEC PGM=排序//SYSOUT DD SYSOUT=H//SORTIN DD DSN=INP1,DISP=SHR,UNIT=3380,VOL=SER=SCR001//SORTOUT DD DSN=&&OUTPUT,DISP=(,PASS(,UNIT=3390,//SPACE=(CYL,(5,1((,DCB=(LRECL=22(//SYSIN DD*选项副本省略COND=(653,5,CH,EQ,C'',或者,688,2,CH,EQ,C'1',或者,688,2,CH,EQ,C'2'(OUTREC内部版本=(1,4,X'00000000001'(//*//STEP1 EXEC PGM=排序//SYSOUT DD SYSOUT=H//SORTIN DD DSN=&&OUTPUT,DISP=SHR,UNIT=3380,VOL=SER=SCR001//SORTOUT DD SYSOUT=*//SYSIN DD*排序字段=(5,1,BI(和字段=(6,4,BI(OUTREC构建=(6,4,BI,TO=ZD,长度=9(

您可以在某些方面改进

相关内容

  • 没有找到相关文章

最新更新