| //MYJOB | JOB | CLASS=A | |
| //STEP1 | EXEC | PGM=SORT | |
| //SYSOUT | DD | SYSOUT=* | |
| //SORTIN | DD | * | |
| 123456789012345678901234567890 |
| 09876543210987654321ABCDEFGHIJ |
| //SORTOT1 | DD | DSN=TESTFIL1, | |
| // | | UNIT=SYSDA,VOL=SER=MYVOL,DISP=(NEW,KEEP), | |
| // | | SPACE=(TRK,(1,1),RLSE), | |
| // | | DCB=(RECFM=FB,LRECL=80,BLKSIZE=24000) | |
| //SORTOT2 | DD | DSN=TESTFIL2, | |
| // | | UNIT=SYSDA,VOL=SER=MYVOL,DISP=(NEW,KEEP), | |
| // | | SPACE=(TRK,(1,1),RLSE), | |
| // | | DCB=(RECFM=FB,LRECL=80,BLKSIZE=24000) | |
| //SORTWK01 | DD | UNIT=SYSDA,SPACE=(CYL,(10,10)) | |
| //SORTWK02 | DD | UNIT=SYSDA,SPACE=(CYL,(10,10)) | |
| //SORTWK03 | DD | UNIT=SYSDA,SPACE=(CYL,(10,10)) | |
| //SYSIN | DD | * | |
| OPTION COPY |
| OUTFIL FNAMES=SORTOT1, | |
| INCLUDE=(21,10,CH,GE,C'0000000000',AND, | |
| | 21,10,CH,LE,C'9999999999'), | |
| OUTREC=(1,10,ZD,TO=PD,LENGTH=6, | ←PACKに変換するにはTO=PDを指定 |
| | 11,10,ZD,TO=PD,LENGTH=6, | ←レングス指定も必要 |
| | 21,10, | |
| | 58Z) | ←Zは16進数のゼロのことです。 |
| OUTFIL FNAMES=SORTOT2,SAVE | ←SORTOT1以外の全レコードををSORT2に格納 |
| OUTREC=(1,10,ZD,TO=PD,LENGTH=6, | |
| | 11,10,ZD,TO=PD,LENGTH=6, | |
| | 21,10, | |
| | 58Z) | |
| /* |
| //STEP2 | EXEC | PGM=IDCAMS | |
| //SYSPRINT | DD | SYSOUT=* | |
| //INFL | DD | DSN=TESTFIL1,DISP=SHR, | |
| // | | UNIT=SYSDA,VOL=SER=MYVOL | |
| //SYSIN | DD | * | |
| PRINT INFILE(INFL) DUMP | ←DUMPは指定しなくても同じ |
| /* |
| //STEP3 | EXEC | PGM=IDCAMS | |
| //SYSPRINT | DD | SYSOUT=* | |
| //INFL | DD | DSN=TESTFIL2,DISP=SHR, | |
| // | | UNIT=SYSDA,VOL=SER=MYVOL | |
| //SYSIN | DD | * | |
| PRINT INFILE(INFL) DUMP | |
| /* |
| //STEP4 | EXEC | PGM=IEFBR14 | |
| //DD1 | DD | DSN=TESTFIL1, | |
| // | | UNIT=SYSDA,VOL=SER=MYVOL,DISP=(OLD,CATLG) | |
| //DD2 | DD | DSN=TESTFIL2, | |
| // | | UNIT=SYSDA,VOL=SER=MYVOL,DISP=(OLD,CATLG) | |
| /* |
| //STEP5 | EXEC | PGM=IDCAMS | |
| //SYSPRINT | DD | SYSOUT=* | |
| //SYSIN | DD | * | |
| DELETE TESTFIL1 PURGE NONVSAM | |
| DELETE TESTFIL2 PURGE NONVSAM | |
| /* |