【问题标题】:Unable to get sorted records. Getting empty file无法获取已排序的记录。获取空文件
【发布时间】:2021-01-15 09:46:19
【问题描述】:

我正在尝试使用 DFSORT 实用程序对文件进行排序,JCL 运行成功,代码为 maxcc=00,但我得到的输出文件为空,请帮助我,

我的输入文件

02AAP000000701050000190116200116012013173000  01R300118
03PC PIFIXSYS20111800FIX FOR 12LA UPDATE               
03PC PIFIXSYS20050700ORG DATE FIX                      
03PC PIFIXSYS1911270012AI LINE1 AND SORT FIX           

我只希望输入的第一行进入输出文件但得到空文件。 我的 JCL 用于排序

//STEP030  EXEC PGM=SORT                                      
//SORTIN    DD DISP=SHR,DSN=T.CAOS.PE8523.PIF.MSTEXT.EXPAND   
//*                                                           
//SORTOUT   DD DSN=T.CAOS.PE8523.PIFFIX.SORTED,               
//             DISP=(NEW,CATLG,DELETE),                       
//             STORCLAS=SCTSO,                                
//             MGMTCLAS=MCTSO,                                
//             RECFM=VB,LRECL=304,BLKSIZE=0,                  
//             SPACE=(CYL,(10,5),RLSE)                        
//SYSOUT    DD SYSOUT=*                                       
//SYSIN    DD    *                                            
  SORT FIELDS=COPY                                            
  INCLUDE COND=(1,2,CH,EQ,C'02')                              
/*                                                            

假脱机错误日志

SYSIN :                                                                       
  SORT FIELDS=COPY                                                      008800
  INCLUDE COND=(1,2,CH,EQ,C'02')                                        008900
WER813I  INSTALLATION OPTIONS IN MFX LOAD LIBRARY WILL BE USED                
WER276B  SYSDIAG= 13300297, 21826883, 21826883, 21059935                      
WER164B  7,908K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,            
WER164B     0 BYTES RESERVE REQUESTED, 2,488K BYTES USED                      
WER146B  32K BYTES OF EMERGENCY SPACE ALLOCATED                               
WER108I  SORTIN   : RECFM=VB   ; LRECL=   304; BLKSIZE= 27998                 
WER073I  SORTIN   : DSNAME=T.CAOS.PE8523.PIF.MSTEXT.EXPAND                    
WER110I  SORTOUT  : RECFM=VB   ; LRECL=   304; BLKSIZE= 27998                 
WER074I  SORTOUT  : DSNAME=T.CAOS.PE8523.PIFFIX.SORTED                        
WER410B  5,856K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16-MEGABYTE LINE,
WER410B     0 BYTES RESERVE REQUESTED, 2,344K BYTES USED                      
WER055I  INSERT          0, DELETE         37                                 
WER211B  SYNCSMF  CALLED BY SYNCSORT; RC=0000                                 
WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE                                 
WER416B  SORTIN   : EXCP'S=1,UNIT=3390,DEV=C679,CHP=(BCC1CDCED0D3,1),VOL=TALF0A
WER416B  SORTOUT  : EXCP'S=0,UNIT=3390,DEV=C49A,CHP=(BCC1CDCED0D3,1),VOL=TASF06
WER416B  TOTAL OF 1 EXCP'S ISSUED FOR COPYING                                 
WER054I  RCD IN         37, OUT          0                                    
WER169I  RELEASE 2.1 BATCH 0539 TPF LEVEL 3.0                                 
WER052I  END SYNCSORT - PE8523AP,STEP030,,DIAG=CE00,51C2,E2AC,006E,8652,68EB,26A8,2460,0100,0300

【问题讨论】:

  • 请删除不适当的标签!这是sort 问题,mainframejcl 标签都可以,但问题与cobolrexx 无关。
  • @phunsoft,很抱歉添加了 rexx 和 cobol,我知道这与它无关,但我认为 cobol 和 rexx 用于大型机,所以关注 cobol 和 rexx 的人可以帮助我,但没有问题现在,我已经删除了 rexx 和 cobol 标签。
  • 实际上JCL标签是错误的,JCL也没有错误,但是你的排序控制语句不是JCL。您还可以使用一个 SYNCSORT 标记。另一种解决方案是使用 STOPAFT=n,其中 n 是停止前要处理的记录数。
  • @NicC 我不明白你建议使用STOPAFT
  • “我只希望输入的第一行进入输出文件”,因此使用 STOPAFT=1 的简单复制操作将仅复制第一条记录。工作完成。

标签: mainframe jcl


【解决方案1】:

您正在对 RECMF=VB 数据集进行排序,因此记录中的第一个数据字节位于位置 5。相应地调整 INCLUDE 语句:

INCLUDE COND=(5,2,CH,EQ,C'02')

【讨论】:

  • 感谢您的解决方案,它现在工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
相关资源
最近更新 更多