We have two PS files,want to compare those files and put
the duplicate records in one file.
Input file 1 contains(1,2,4,9,10)
Input file 2 contains (1,4,5,11,12,14,16).
Help me with jcl.
Answers were Sorted based on User's Feedback
Answer / shriram supalwar, dharmabad
//jobcard
//step1 exec pgm=iebgener
//sysprint dd sysout=*
//sysut1 dd dsn=proj.test.file1,disp=shr
// dd dsn=proj.test.file2,disp=shr
//sysut2 dd dsn=proj.output,disp=shr
//sysin dd dummy
//if (step1.rc eq 0) then
//step2 exec pgm=sort
//sysprint dd sysout=*
//sortin dd dsn=proj.output,disp=shr
//sortout dd dsn=proj.sortout,disp=shr
//sortxsum dd dsn=proj.duplicate,disp=shr
//sysin dd *
sort fields=(1,5,ch,a)
sum fields=none,xsum
/*
Now, all these records are copied to proj.output
and out of those records the duplicate records are copied to
proj.duplicate
Correct me if i am wrong
| Is This Answer Correct ? | 3 Yes | 1 No |
Answer / aditi
hi,
I have also faced the same question.
as we have the two seperate input files.
Nitika, U have taken only one input file so how we sort it
using only one file?
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / nitika
Use SORTXSUM utility in JCL to get the output.
//JOB1 JOB ,, CLASS = A
//STEP1 EXEC PGM=SORT
//SORTIN DD DSN=TEST.PS.INPUT
//SORTOUT DD DSN=TEST.PS.OUTPUT
//SORTXSUM DD DSN=TEST.PS.OUTPUT
//SYSIN DD *
SORT FIELDS = (1,1,CH,A)
SUM FIELDS = (NONE,XSUM)
/*
Now SUM FIELDS = NONE means no duplicates in the output file
(TEST.PS.OUTPUT)and XSUM means duplicates, in the two files
being matched, should be sent to the file mentioned in
SORTXSUM ddname.
So, output file will have 1,4.
| Is This Answer Correct ? | 3 Yes | 3 No |
Answer / karthik
@aditi n nikita
i think we can use ibm utility iebcompare
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / mdv
@Shriram Supalwar, Dharmabad
You don't need the IEBGENER STEP.
Your second step sort can have both the files concatenated
as one and given as Input.
Thanks
| Is This Answer Correct ? | 0 Yes | 0 No |
Use join keys
//STEP01 EXEC PGM=SORT
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SORTJNF1 DD DSN=INPUT.FILE.ONE,DISP=SHR
//SORTJNF2 DD DSN=INPUT.FILE.TWO,DISP=SHR
//SORTOUT DD DSN=OUTPUT.FILE,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(100,200),RLSE),
// DCB=(RECFM=FB,BLKSIZE=0,LRECL=80)
//SYSIN DD *
SORT FIELDS=COPY
JOINKEYS FILES=F1,FIELDS=(1,10,A)
JOINKEYS FILES=F2,FIELDS=(1,10,A)
REFORMAT FIELDS=(F1:1,71,F2:1,9)
/*
| Is This Answer Correct ? | 0 Yes | 0 No |
describe the exec statement,its meaning ,syntax and keywords?
I had 100 steps in jcl i want to execute first 10 steps only?
if my GDG limit has been kept as 50 and if am trying to put 60 records.what would happen. will there be any abend for this scenario
What is TimeStamp, What is TimeStamp error and What is the Abend Code for TimeStamp Error ?
how to identify the file used in the JCL is an VSAM file. Just seeing the JCL code how can we track the file as VSAM file?
Explain about LMFREE�free data set from its association with data ID
whats SOC7?
Define concatenating?
Can I send output of job to my remote device careerride123?
If the proc stepname is excluded while overriding the COND, TIME, REGION and PARM parameters while calling the proc, will the override only apply to the first step in the proc or all the steps for all the above parameters?
If I defined space as TRK(10,10) for the one file and lrecl = 4K then tell me how many record will vsam file will contain. will it 1,2,3,4,5 or how many,
How to pass values in jcl to cobol?