是否可以在JCL中使用ICETOOL或syncsort以列方式连接4个文件
例如:


发布于 2020-03-30 21:09:04
下面的代码将执行您想要的操作。我有基于文件的输入是80字节的长度。
我的意见如下:
文件1:-
1RED
1WHITE
1BLUE
1BLUE
1BLUE
1BLUE
1BLUE
1BLUE
1BLUE
1BLUE
1BLUE
1BLUE
1BLUE
1PINK文件2:-
21000
22000
23000
24000
25000文件3:-
3X1
3X2
3X3
3X4
3X5文件4:-
4R1
4R2
4R3
4R4
4R5
4R6
4R7
4R8
4R9
4R10
4R11
4R12
4R13
4R14
4R15代码将根据您的需要将文件合并在一起,并处理不同数量记录的实例,等等。
//STEP1 EXEC PGM=ICETOOL
//SYSOUT DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//TOOLMSG DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//IN1 DD DSN=JXB7884.FILE1,DISP=SHR
//IN2 DD DSN=JXB7884.FILE2,DISP=SHR
//IN3 DD DSN=JXB7884.FILE3,DISP=SHR
//IN4 DD DSN=JXB7884.FILE4,DISP=SHR
//M1 DD DSN=&&M1,
// DISP=(MOD,PASS),
// DCB=(RECFM=FB,LRECL=328,BLKSIZE=0,DSORG=PS),
// UNIT=SYSDA,
// SPACE=(TRK,1)
//REPORT DD DSN=JXB7884.REPORT,
// DISP=(NEW,CATLG,DELETE),
// DCB=(RECFM=FB,LRECL=320,BLKSIZE=0,DSORG=PS),
// UNIT=SYSDA,
// SPACE=(TRK,1)
//TOOLIN DD *
COPY FROM(IN1) TO(M1) USING(COP1)
COPY FROM(IN2) TO(M1) USING(COP2)
COPY FROM(IN3) TO(M1) USING(COP3)
COPY FROM(IN4) TO(M1) USING(COP4)
SPLICE FROM(M1) TO(REPORT) ON(321,8,PD) WITHANY -
KEEPNODUPS -
WITH(81,80) WITH(161,80) WITH(241,80) -
USING(SPL1)
/*
//COP1CNTL DD *
OPTION COPY
OUTREC FIELDS=(1,80,240X,321:SEQNUM,8,PD)
/*
//COP2CNTL DD *
OPTION COPY
OUTREC FIELDS=(80X,81:1,80,160X,321:SEQNUM,8,PD)
/*
//COP3CNTL DD *
OPTION COPY
OUTREC FIELDS=(160X,161:1,80,80X,321:SEQNUM,8,PD)
/*
//COP4CNTL DD *
OPTION COPY
OUTREC FIELDS=(240X,241:1,80,321:SEQNUM,8,PD)
/*
//SPL1CNTL DD *
OUTFIL FNAMES=REPORT,OUTREC=(1,320)
/* https://stackoverflow.com/questions/60729185
复制相似问题