Hi, I have ICE113A E COMPARISON FIELD ERROR - maybe the number of fields is more than allowed , but in documentation it says:
Programmer Response: Make sure that all fields and constants are specified correctly. Make sure that the position plus the length of each field does not exceed 32753
Here is the error:
Code:
SORT FIELDS=COPY
OUTFIL FNAMES=GENER,OMIT=(05,2,SS,EQ, X
C'04,05,06,07,1A,1B,1C,1F,1G,1H,1K,10,11,12,16, X
17,19,2B,2C,20,21,24,25,26,27,29,3A,3B,3C,3D,3E,3F, X
3G,3H,3J,3K,3L,30,35,36,37,38,39,4A,4D,4H,4L,4M,4Q, X
40,42,43,44,45,47,48,49,5D,5E,5G,50,51,52,53,54,55, X
58,59,6B,60,64,66,69,7C,7D,7J,70,72,73,74,75,76, X
$
COMPARISON FIELD ERROR
78,79,8A,8B,81,86,87,89,93,94,97)
OUTFIL FNAMES=BROK,SAVE
C5-K90025 C6-K90025 C7-K54603 C8-K62201 E7-K62201
END OF DFSORT
SORT FIELDS=COPY
OUTFIL FNAMES=GENER,OMIT=(05,2,SS,EQ, X
C'04,05,06,07,1A,1B,1C,1F,1G,1H,1K,10,11,12,16, X
17,19,2B,2C,20,21,24,25,26,27,29,3A,3B,3C,3D,3E,3F, X
3G,3H,3J,3K,3L,30,35,36,37,38,39,4A,4D,4H,4L,4M,4Q, X
40,42,43,44,45,47,48,49,5D,5E,5G,50,51,52,53,54,55, X
58,59,6B,60,64,66,69,7C,7D,7J,70',OR, X
05,2,SS,EQ, X
C'72,73,74,75,76,78,79,8A,8B,81,86,87,89,94,97')
OUTFIL FNAMES=BROK,SAVE
anatol,
I think this is because SS only support comparison of upto 256 bytes(one byte length field/TRT!!??) at one go,but I am not able to locate any reference of this limit in dfsort manuals.
However, I could be wrong and above is just assumption. Still searching...
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
Quote:
actually this worked
Well, it didn't get a syntax error, but it's NOT doing what you think it is. You're not continuing the string correctly, so the embedded blanks are actually included in the string.
The ICE113A error is due to using more than 256 characters for the string.
That is documented as the limit. But using incorrect continuation made it even worse.
Here are DFSORT control statements that will do what you want:
Notice that the correct way of continuing a string across lines is to go right up to 71, put a non-blank in 72 and then continue on the next line in 2.