I have defined an input field on my input file in SAS as @243 TIER4MAX PD9.3 This field was created by a COBOL modules that had a PIC clause as PIC S9(13)V999 COMP-3. The SAS module simply read in the data and put it into a SAS dataset with no manipulation. The input value looked like this: rrrrrrrærrrrrrrræ rrræ rrrrrrrærrrrrrrrærrrræ 0999999999999999990999909999999999999999999999 99999999C99999999C9999C99999999C99999999C9999C We use SAS V9.4 When I run the SAS code my output looks like this: rrrrrrrðrrrrrrrræ rrræ rrrrrrrðrrrrrrrrærrrræ 0999999989999999990999909999999899999999999999 99999999C99999999C9999C99999999C99999999C9999C Notice that first and fourth field had the last byte changed from Hex '9C' to Hex '8C' . Fields 1, 2, 4 & 5 are defined as PD9.3 while fields 3 & 6 are defined as PD5.3. Fields that are defined with PD9.3 and contained all 9's stayed the same, but the fields that contained all 9's except for the left most bit had the bit before the sign changed to Hex '8C'. Field 3 contained Hex ;099999999C and it stayed the same on the output. So does anyone know why Hex '9C' was replaced with Hex '8C' on the 2 larger fileds, and how can this conversion be prevented.
... View more