我有一个输入文件(80个字符),日期位置为1到10,格式为YYYY-MM-DD。我想隔离该日期,然后将其写入另一个现有文件(使用叠加可能??)。在这个现有文件中,我希望日期替换YYYY-MM-DD。此yyyy-mm-dd位于输出文件中的第59位。
我不确定我们是否只能一步执行此操作,或者我们需要两个步骤。
INPUT FILE(80个字符):2018-06-28,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
我想覆盖输出文件参数YYYY-MM-DD。输出文件(80个字符):FILE = / DATA / EXT / RECEPTION / TEST01_DTE / PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
预期输出文件结果:文件= / DATA / EXT / RECEPTION / TEST01_DTE / PASSING_DTE_PARAM_CTL.2018-06-28.QS
使用ICETOOL可以一步完成预期的结果。
我做了以下假设:
输入文件1中的记录:
FILE=/DATA/EXT/RECEPTION/TEST01_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST02_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST03_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST04_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST05_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
FILE=/DATA/EXT/RECEPTION/TEST06_DTE/PASSING_DTE_PARAM_CTL.YYYY-MM-DD.QS
输入文件2中的记录:
2018-06-28,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-06-29,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-06-30,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-07-01,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-07-02,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2018-07-03,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
工作:
//Z31084A JOB 1,NOTIFY=&SYSUID
//SRTJK EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//INA DD DSN=Z31084.DATASET.A,DISP=SHR
//INB DD DSN=Z31084.DATASET.B,DISP=SHR
//JNA DD DSN=&&JNA,DISP=(,DELETE),
// SPACE=(CYL,(1,0),RLSE),
// DCB=(LRECL=84,RECFM=FB,BLKSIZE=0)
//JNB DD DSN=&&JNB,DISP=(,DELETE),
// SPACE=(CYL,(1,0),RLSE),
// DCB=(LRECL=84,RECFM=FB,BLKSIZE=0)
//OUT DD SYSOUT=*
//TOOLIN DD *
SORT FROM(INA) TO(JNA) USING(CTL1)
SORT FROM(INB) TO(JNB) USING(CTL1)
SORT JKFROM TO(OUT) USING(CTL3)
/*
//CTL1CNTL DD *
SORT FIELDS=COPY
OUTREC FIELDS=(1:1,80,81:SEQNUM,4,ZD)
/*
//CTL3CNTL DD *
JOINKEYS F1=JNA,FIELDS=(81,4,A)
JOINKEYS F2=JNB,FIELDS=(81,4,A)
REFORMAT FIELDS=(F1:1,58,F2:1,10,F1:69,12)
SORT FIELDS=COPY
/*
输出:
FILE=/DATA/EXT/RECEPTION/TEST01_DTE/PASSING_DTE_PARAM_CTL.2018-06-28.QS
FILE=/DATA/EXT/RECEPTION/TEST02_DTE/PASSING_DTE_PARAM_CTL.2018-06-29.QS
FILE=/DATA/EXT/RECEPTION/TEST03_DTE/PASSING_DTE_PARAM_CTL.2018-06-30.QS
FILE=/DATA/EXT/RECEPTION/TEST04_DTE/PASSING_DTE_PARAM_CTL.2018-07-01.QS
FILE=/DATA/EXT/RECEPTION/TEST05_DTE/PASSING_DTE_PARAM_CTL.2018-07-02.QS
FILE=/DATA/EXT/RECEPTION/TEST06_DTE/PASSING_DTE_PARAM_CTL.2018-07-03.QS
按照我的方法,我在两个输入文件中填充记录末尾的序列号,并且我在JOINKEYS应用程序中使用序列号作为键。
希望这可以帮助!
这是我如何解决问题:
//EXTRCT EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD
DSN=INPUT.DATE.CTL.FILE,DISP=SHR
//SORTOUT DD
DSN=OUTPUT.FILE.TEST,
// DISP=(,CATLG),UNIT=SYSDA,SPACE=(TRK,(10,10),RLSE)
//SYSIN DD *
OPTION COPY
OUTFIL REMOVECC,
OUTREC FIELDS=
(C'FILE=/DATA/EXT/TEST01_DTE/PASSING_DTE_PARAM_CTL.',59:1,10,
C'.QS ')
/*
//
输出文件结果将是:
FILE = / DATA / EXT / TEST01_DTE / PASSING_DTE_PARAM_CTL.2019-02-20.QS
我不想使用连接键。
谢谢