Posted: Wed Apr 18, 2007 3:50 pm Post subject: Omit cond with High values.
Hi all,
I am using Syncsort. I tried using the below Omit cond to remove the record which has high values in the first 262 positions. After the sort the record still exists. I tried reducing the number from 261 to 100 just to give a thought of size but still it did not work. Can any one please help me out in this.
SORT FIELDS=(33,46,CH,A)
SUM FIELDS=NONE,XSUM
OMIT COND=(1,100,CH,EQ,X'FF')
Again, to explain more I am trying to filter a file which has duplicates to write a file with unique records. So, could get with XSUM and sort. But the input file does have trailer record with the first 262 chars as high values and a value from 263 to 272. After eliminating duplicates, the value in the trailer record need to be changed. So, I am trying to remove the exisisting trailer record and add a new one. If i can achieve this with out removing the existing record, can any one pls provide me some hlep?
Any help is appreciable. I am trying many combinations to achieve this. I tried taking the solutions which involves similar situations, but could end without result.
Pls let me know if I need to provide any more information on what I am trying to do.
Joined: 02 Dec 2002 Posts: 415 Topics: 6 Location: Hove, England
Posted: Thu Apr 19, 2007 10:29 am Post subject:
Ram22,
Your x'FF' is being padded to the right with filler characters to make a constant that is 261 bytes long. This will not equal a 261 byte field containing all x'FF'.
You should check your Syncsort manual. _________________ The day you stop learning the dinosaur becomes extinct
My requirement is to check for the first 261, thats the reason I am facing problem. Otherwise to chek only one position your solution might have worked.
Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
Posted: Thu Apr 19, 2007 3:30 pm Post subject:
Ram22,
I thought *some one* would have answered it by now. Any ways the max bytes you can check for include/omit condition for syncsort is 256 for character data. try this control card instead
Joined: 07 Jan 2003 Posts: 1056 Topics: 91 Location: The Blue Planet
Posted: Thu Apr 19, 2007 3:38 pm Post subject:
Kolusu,
I have a question here...
As far as I understand, Ram22 wants to omit a record which has High Values in the first 261 bytes (ALL bytes between 1-261).
Your solution, would omit the record which has X'FF' (high value) anywhere in the first 261 bytes. Meaning, if he has a valid record which has some data followed by some highvalues and again data, even this will be omitted.
Infact Ram22 rejected AMargulies's solution for the same reason. He doesnot want to check for just ONE (or more) positions. He wants the entire 261 bytes to be compared.
I accept that both Your solution and AMargulies solution will work for the case posted here. But who knows, the actual scenario that Ram is facing might be different - where he may have highvalues in some of his valid records also.
Ram22,
Please correct me if my understanding of the question is wrong.
Note that there should be two blanks before OMIT and one blank before each line of FFs with the *s in position 72. _________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum