检查输入文件记录是否已排序,如果不是,则应该异常终止

时间:2015-04-28 10:32:45

标签: jcl dfsort

我正在尝试编写一个JCL,用于检查输入文件记录是否已排序,如果不是,则应该使用特定消息异常终止。

这是我的工作;但我不想让它再排序了。如果第3栏中的公司编号不在序列中,我希望它能够异常终止;

//TOOL1    EXEC PGM=ICETOOL                                        
//TOOLMSG  DD SYSOUT=T                                             
//DFSMSG   DD SYSOUT=T                                             
//TOOLIN   DD *                                                    
  DATASORT FROM(INPUT1) TO(OUTPUT) HEADER TRAILER USING(CTL1)      
/*                                                                 
//INPUT1   DD  DSN=FCGL.BPYP667.CNTL(GLGLJ010),                    
//             DISP=SHR                                            
//OUTPUT   DD  DSN=FCGL.BPYP667.CNTL(GLGLJ010),                    
//             DISP=SHR,                                           
//         DCB=*.INPUT1                                            
//CTL1CNTL DD *                                                    
  SORT FIELDS=(3,4,CH,A)                                           
/*

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用假合并
  2. (这只是假合并的伪代码,所以请忽略任何语法错误,如果有的话),

    // STEP1 EXEC PGM = SORT

    // SORTIN DD DSN = YOUR-INP-DSN,DISP = SHR

    // SORTOUT DD DSN =&& TEMP1,DISP = SHR

    // SYSIN DD *

    OUTREC =(1:3,1)

    / *

    // STEP2 EXEC PGM = SORT

    // SORTIN01 DD DSN =&& TEMP1,DISP = SHR

    // SORTOUT DD DUMMY或NULLFILE

    // SYSIN DD *

    MERGE FIELDS = COPY

    / *

    如果输入文件不按顺序,STEP2将失败。

    1. 作为第二个选项,在文件已经排序的JOINKEYS语句中,如果文件已经排序,我们将给出SORTED关键字。如果记录不在排序顺序中,它将终止。