You can store 16 digits as a number, but only up to the maximum integer that SAS can represent before it starts having to round values. So unless you are positive the values will always be less than 9,007,199,254,740,992 you should keep it as character string. There is no real reason to store identifiers as numbers since you won't be doing any arithmetic on them.
45 data _null_;
46 maxint=constant('exactint');
47 len = length(cats(maxint));
48 put len= maxint=:comma32.;
49 run;
len=16 maxint=9,007,199,254,740,992
... View more