The first number in your SUM function is just a hair larger than the maximum 8-byte integer in SAS, which is 9,007,199,254,740,992. There's a SAS support article called Numerical Accuracy in SAS Software that may be helpful.
However, here is one way to do it, although the result will be a character string, not actual numerical data. It's admittedly a bit of a hack, but I'm basically breaking off the last 10 digits of each number, adding them separately, then adding the parts before the last 10 digits separately, and then concatenating the resulting sums as one long string:
data temp; a1 = 901424; a2 = 2673057788; b1 = 1101; b2 = 6614466661; x1 = a1+b1; x2 = a2+b2; sum = cats(put(x1,10.),put(x2,10.)); run;
Note that a1 and a2 represent the two parts of your first number, b1 and b2 are the two part of your second number, and x1 and x2 are the two parts of the answer. Choosing 10 digits was somewhat arbitrary, but it keeps you well under the maximum allowable integer. Obviously, if your numbers got much bigger, you might have to split into more parts.
Edit to add: As noted below, this method only works if you break both numbers in a place where no carrying will occur, so it's really not an acceptable solution in general.
... View more