View previous topic :: View next topic
Author
Message
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Hi,
I have a requirement to compare two VSAM F using SYNCSORT in Z/VSE. The record size of both the input files are same. The first 22 character length field is the key field in both the files. I want to find out all the records in file 2 matching with key field in file 1. I tried to write a sort jcl using JOINKEYS, but its giving errors. I am new in Z/VSE environment, so could someone please direct me to achieve this
Code:
// DLBL SRTJNF1,'file 1',0,VSAM,CAT=ID
// DLBL SRTJNF2,'file 2',0,VSAM,CAT=ID
// DLBL SORTOUT,'output file',0,VSAM,DISP=(,KEEP), RECORDS=(100,100),
RECSIZE=775,CAT=ID
// EXEC SORT
SORT FIELDS= COPY
JOINKEYS FILES=F1,FIELDS=(1,10,A)
JOINKEYS FILES=F2,FIELDS=(1,10,A)
REFORMAT FIELDS=(F2:1,775)
Back to top
Joerg.Findeisen Senior Member Joined: 15 Aug 2015Posts: 1255 Location: Bamberg, Germany
Please post the error msgs as well. Between your SORT FIELDS= and the following COPY should not be a blank, btw.
Back to top
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Hi Joerg.
Thanks for your reply. Sorry, the space between SORT FIELDS and COPY is a typo.
Please find the error message below.
Code:
// DLBL SRTJNF1,'file1',0,VSAM,CAT=ID
1S03D INVALID STATEMENT
// DLBL SRTJNF1,'file2',0,VSAM,CAT=ID
1S03D INVALID STATEMENT
SYNCSORT for Z/VSE version number
SORT FIELDS=COPY
JOINKEYS FILES=F1,FIELDS=(1.22,A)
JOINKEYS FILES=F2,FIELDS=(1.22,A)
REFORMAT FIELDS=(F2:1,775)
WER115A REQ'D PARM MISSING ON JOINKEYS STMT
WER115A REQ'D PARM MISSING ON JOINKEYS STMT
WER234A DIAG= 00000000 00000000 00000000 00000400 00370000 00000000
WER400A CRITICAL ERROR, SORT TERMINATED
WER117A PHASE 0 HAS CRITICAL ERROR
Back to top
Joerg.Findeisen Senior Member Joined: 15 Aug 2015Posts: 1255 Location: Bamberg, Germany
It seems your allocation of F1 and F2 are wrong. Unfortunately I can't help with that.
Code:
// DLBL SRTJNF1,'file1',0,VSAM,CAT=ID
1S03D INVALID STATEMENT
// DLBL SRTJNF1,'file2',0,VSAM,CAT=ID
1S03D INVALID STATEMENT
Back to top
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Is there any other methods to compare two files. I want to find all the records in file 2 matching with key field in file 1. The first 22 character length field is the key field in both the files.
Back to top
sergeyken Senior Member Joined: 29 Apr 2008Posts: 2023 Location: USA
nithinkarthika wrote:
Code:
JOINKEYS FILES=F1,FIELDS=(1.22,A)
JOINKEYS FILES=F2,FIELDS=(1.22,A)
You cannot specify field positions as "one point twenty two"
It must be "one comma twenty two"
Back to top
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Hi Sergeyken,
Sorry, there were some issues while typing the code. Please find below the jcl statements and error message.
Code:
// DLBL SRTJNF1,'file 1',0,VSAM,CAT=ID
// DLBL SRTJNF2,'file 2',0,VSAM,CAT=ID
// DLBL SORTOUT,'output file',0,VSAM,DISP=(,KEEP), RECORDS=(100,100),
RECSIZE=775,CAT=ID
// EXEC SORT
SORT FIELDS=COPY
JOINKEYS FILES=F1,FIELDS=(1,22,A)
JOINKEYS FILES=F2,FIELDS=(1,22,A)
REFORMAT FIELDS=(F2:1,775)
output error message
Code:
// DLBL SRTJNF1,'file1 name',0,VSAM,CAT=ID
1S03D INVALID STATEMENT
// DLBL SRTJNF1,'file2 name',0,VSAM,CAT=ID
1S03D INVALID STATEMENT
SYNCSORT for Z/VSE version number
SORT FIELDS=COPY
JOINKEYS FILES=F1,FIELDS=(1,22,A)
JOINKEYS FILES=F2,FIELDS=(1,22,A)
REFORMAT FIELDS=(F2:1,775)
WER115A REQ'D PARM MISSING ON JOINKEYS STMT
WER115A REQ'D PARM MISSING ON JOINKEYS STMT
WER234A DIAG= 00000000 00000000 00000000 00000400 00370000 00000000
WER400A CRITICAL ERROR, SORT TERMINATED
WER117A PHASE 0 HAS CRITICAL ERROR
Back to top
sergeyken Senior Member Joined: 29 Apr 2008Posts: 2023 Location: USA
RTFM carefully!
Code:
JOINKEYS {FILE=F1 }
{ F2 }
{F1=ddname }
{F2=ddname }
Back to top
Joerg.Findeisen Senior Member Joined: 15 Aug 2015Posts: 1255 Location: Bamberg, Germany
Could you try and omit the CAT=ID parameter for the DLBL allocation? It seems it either requires an additional DLBL statement if you want to use it but for VSAM it seems to not be necessary.
Back to top
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Hi Joerg,
Thank you for assistance. The Invalid statement error has been resolved.
But the second error is still there, "REQ'D PARM MISSING ON JOINKEYS STMT". Not getting what PARM value is missing in the statements !
Back to top
Joerg.Findeisen Senior Member Joined: 15 Aug 2015Posts: 1255 Location: Bamberg, Germany
Please see what sergeyken has written:
Code:
JOINKEYS FILE=F1,FIELDS=(1,22,A)
and you have (FILES instead of FILE)
Code:
JOINKEYS FILES=F1,FIELDS=(1,22,A)
Hopefully it's just that.
Back to top
sergeyken Senior Member Joined: 29 Apr 2008Posts: 2023 Location: USA
Joerg.Findeisen wrote:
Please see what sergeyken has written:
Code:
JOINKEYS FILE=F1,FIELDS=(1,22,A)
and you have (FILES instead of FILE)
Code:
JOINKEYS FILES=F1,FIELDS=(1,22,A)
Hopefully it's just that.
Those not able to RTFM, cannot read clear answers, too...
Back to top
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Hi Sergeyken/Joerg,
I changed from FILES to FILE but no luck. I am getting the same error message, "REQ'D PARM MISSING ON JOINKEYS STMT".
Before
Code:
JOINKEYS FILES=F1,FIELDS=(1,22,A)
JOINKEYS FILES=F2,FIELDS=(1,22,A)
REFORMAT FIELDS=(F2:1,775)
After
Code:
JOINKEYS FILE=F1,FIELDS=(1,22,A)
JOINKEYS FILE=F2,FIELDS=(1,22,A)
REFORMAT FIELDS=(F2:1,775)
Back to top
sergeyken Senior Member Joined: 29 Apr 2008Posts: 2023 Location: USA
nithinkarthika wrote:
Hi Sergeyken/Joerg,
I changed from FILES to FILE but no luck. I am getting the same error message, "REQ'D PARM MISSING ON JOINKEYS STMT".
Before
Code:
JOINKEYS FILES=F1,FIELDS=(1,22,A)
JOINKEYS FILES=F2,FIELDS=(1,22,A)
REFORMAT FIELDS=(F2:1,775)
After
Code:
JOINKEYS FILE=F1,FIELDS=(1,22,A)
JOINKEYS FILE=F2,FIELDS=(1,22,A)
REFORMAT FIELDS=(F2:1,775)
Are you sure you’re running the same code?
Are you sure you’re looking into the right log version?
Since you demonstrated inability to fix primitive syntax errors, I do not believe your presented information is correct.
Copy and paste THE FULL LOG WITH FULL ELEMENTS OF IT JUST COPIED, not re-typed manually, and not re-told by your own words. Otherwise it makes no sense to waste more time on you.
Back to top
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Hi Sergeyken,
Please find the log copied directly from spool.
Code:
SYNCSORT FOR Z/VSE REL 3.7D
SORT FIELDS=COPY
JOINKEYS FILE=F1,FIELDS=(1,22,A)
JOINKEYS FILE=F2,FIELDS=(1,22,A)
REFORMAT FIELDS=(F2:1,775)
WER115A REQ'D PARM MISSING ON JOINKEYS STMT
WER115A REQ'D PARM MISSING ON JOINKEYS STMT
WER234A DIAG= 00000000 00000000 00000000 00000400 00370000 00000000
WER400A CRITICAL ERROR, SORT TERMINATED
Back to top
Joerg.Findeisen Senior Member Joined: 15 Aug 2015Posts: 1255 Location: Bamberg, Germany
Please let's change the JOINKEYS as follows:
Code:
JOINKEYS FILE=F1,FIELDS=(1,22,A)
JOINKEYS FILE=F2,FIELDS=(1,22,A)
to
Code:
JOINKEYS F1=SRTJNF1,FIELDS=(1,22,A)
JOINKEYS F2=SRTJNF2,FIELDS=(1,22,A)
and check one more time that those DLBL are defined correctly (1 and 2).
Code:
// DLBL SRTJNF1 ..
// DLBL SRTJNF2 ..
Back to top
sergeyken Senior Member Joined: 29 Apr 2008Posts: 2023 Location: USA
nithinkarthika wrote:
Hi Sergeyken,
Please find the log copied directly from spool.
Code:
SYNCSORT FOR Z/VSE REL 3.7D
SORT FIELDS=COPY
JOINKEYS FILE=F1,FIELDS=(1,22,A)
JOINKEYS FILE=F2,FIELDS=(1,22,A)
REFORMAT FIELDS=(F2:1,775)
WER115A REQ'D PARM MISSING ON JOINKEYS STMT
WER115A REQ'D PARM MISSING ON JOINKEYS STMT
WER234A DIAG= 00000000 00000000 00000000 00000400 00370000 00000000
WER400A CRITICAL ERROR, SORT TERMINATED
The full log assumes everything, including JCL log, and JCL source
Back to top
Joerg.Findeisen Senior Member Joined: 15 Aug 2015Posts: 1255 Location: Bamberg, Germany
@sergeyken: This is a fact indeed.
It seems to me that the DD's are wrong. They were named SRTJNF1 and SRTJNF2 but should be SORTJNF1 and SORTJNF2 for FILE=Fn format. When switching to the Fn=DDname format the job should run. Otherwise I am temporary out of ideas here.
Back to top
Rohit Umarjikar Global Moderator Joined: 21 Sep 2010Posts: 3053 Location: NYC,USA
And assuming they are sorted, may also try adding ,
Code:
JOINKEYS FILE=F1,FIELDS=(1,22,A),SORTED,NOSEQ
If nothing works then please write a program or use other utilities you have at your site.
Back to top
dneufarth Active User Joined: 27 Apr 2005Posts: 420 Location: Inside the SPEW (Southwest Ohio, USA)
If I recall,
// DLBL filename, 'file-id',...
filename is limited to 7 characters in VSE
filename is equivalent to DD and file-id is equivalent to DSN in Z/OS
Back to top
sergeyken Senior Member Joined: 29 Apr 2008Posts: 2023 Location: USA
Joerg.Findeisen wrote:
@sergeyken: This is a fact indeed.
It seems to me that the DD's are wrong. They were named SRTJNF1 and SRTJNF2 but should be SORTJNF1 and SORTJNF2 for FILE=Fn format. When switching to the Fn=DDname format the job should run. Otherwise I am temporary out of ideas here.
Don’t know how to overcome this:
firsttimeuser wrote:
I am new to computer, software, utilities, compiler, and scripts. I have the requirement to write something working on some type of computers. I don’t know exactly what to write, and where to put it all. I have this data
XXX YYY ZZZ AAA BBB CCC
Desired output is
111 222 333 444 555
But something goes wrong, and I do not get any result. Please help me to do my job, I want to get my salary
Back to top
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Rohit Umarjikar wrote:
And assuming they are sorted, may also try adding ,
Code:
JOINKEYS FILE=F1,FIELDS=(1,22,A),SORTED,NOSEQ
If nothing works then please write a program or use other utilities you have at your site.
I have added SORTED and NOSEQ. Now I am getting a new error message
Code:
JOINKEYS FILE=F1,FIELDS=(1,8,A),SORTED,NOSEQ
*
JOINKEYS FILE=F1,FIELDS=(1,8,A),SORTED,NOSEQ
*
REFORMAT FIELDS=(F2:1,775)
SORT FIELDS=COPY
WER047A JOINKEYS STATEMENT HAS SYNTAX ERROR
WER047A JOINKEYS STATEMENT HAS SYNTAX ERROR
If I remove NOSEQ from JOINKEYS, then getting the previous error message "REQ'D PARM MISSING ON JOINKEYS STMT". I tried NOSEQCK instead of NOSEQ as well, but no luck.
Back to top
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Joerg.Findeisen wrote:
Please let's change the JOINKEYS as follows:
Code:
JOINKEYS FILE=F1,FIELDS=(1,22,A)
JOINKEYS FILE=F2,FIELDS=(1,22,A)
to
Code:
JOINKEYS F1=SRTJNF1,FIELDS=(1,22,A)
JOINKEYS F2=SRTJNF2,FIELDS=(1,22,A)
and check one more time that those DLBL are defined correctly (1 and 2).
Code:
// DLBL SRTJNF1 ..
// DLBL SRTJNF2 ..
Hi Joerg,
I tried this method, but its failing with invalid statement error message.
Back to top
nithinkarthika New User Joined: 26 Apr 2020Posts: 11 Location: India
Finally sorted out..!!
For those who are working on Z/VSE or Z/VM...here is a working sort card for JOIN operation
Code:
// DLBL SORTIN1,'INPUT FILE 1',0,VSAM,CAT=ID
// DLBL SORTIN2,'INPUT FILE 2',0,VSAM,CAT=ID
// DLBL SORTOUT,'OUTPUT FILE',0,VSAM,DISP=(,KEEP), RECORDS=(XX,XX),RECSIZE=XX,CAT=ID
// DLBL SORTWKA,'Work dataset name', RECSIZE=xx, RECORDS=(xx,xx)
// EXEC SORT
JOINKEYS FILES=F1,FIELDS=(1,10,A),TYPE=F/V,LRECL=XX,BLKSIZE=xx
JOINKEYS FILES=F2,FIELDS=(1,10,A),TYPE=F/V,LRECL=XX,BLKSIZE=xx
REFORMAT FIELDS=(F1/F2:XX,XX)
SORT FIELDS= COPY
Back to top
Rohit Umarjikar Global Moderator Joined: 21 Sep 2010Posts: 3053 Location: NYC,USA
Tough guess . Thanks for posting it back with solution.
Back to top
Please enable JavaScript!