0

我正在尝试编写一个 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)                                           
/*
4

1 回答 1

0
  1. 您可以使用假合并

(这只是一个假合并的伪代码,所以请忽略任何语法错误,如果有的话),

//STEP1 执行 PGM=排序

//排序 DD DSN=YOUR-INP-DSN,DISP=SHR

//排序 DD DSN=&&TEMP1,DISP=SHR

//SYSIN DD *

OUTREC=(1:3,1)

/*

//STEP2 执行 PGM=排序

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

//SORTOUT DD DUMMY 或 NULLFILE

//SYSIN DD *

合并字段=复制

/*

如果您的输入文件不按顺序排列,此处的 STEP2 将失败。

  1. 作为第二个选项,当文件已经排序时,在 JOINKEYS 语句中,如果文件已经排序,我们将给出 SORTED 关键字。如果记录未按排序顺序,它将终止。
于 2015-05-13T22:05:15.913 回答