Date: Fri, 22 Oct 1999 18:41:27 +0100
Reply-To: R P Bullock <{$news$}@rerun.demon.co.uk>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: R P Bullock <{$news$}@NOSPAM.DEMON.CO.UK>
Organization: ReRun Ltd
Subject: Re: PROC COPY & PROC COMPARE
In article <7CE841760399D111B18D00805F57336B04B27525@coyote.research.aa.
wl.com>, Ravi, Prasad <Prasad.Ravi@WL.COM> writes
> A colleague of ours here has this problem, we could not figure out
>why is he getting this?.
>
> Basically what he did was created the SAS Transport file of a SAS
>Library using PROC COPY (version SAS 6.12, host UNIX), to check to make sure
>this was done right, he recreated back the SAS Library from this Transport
>file and compared all the datasets before and after, for some variables in
>few datasets it turned out that attributes changed for example
>
>Length of several numeric variables were different
>
> Before After
>Variable Form Length Variable Form Length
>CI Num 6 CI NUM 7
>PROT Num 6 PROT NUM 7
>SITE Num 6 SITE NUM 7
>PTID Num 7 PTID NUM 8
>
>He did this in same version of SAS 6.12, and same Host UNIX.
>
>Did anybody came across such a situation?. I am familiar that if the data
>is transported from one HOST to another the attributes change.
>
>
> Prasad Ravi
> CNS/CRS
> Ext. 1569
> <<...>>
Prasad,
I think the answer lies with platforms using differing methods to store
numbers and hence the danger of losing accuracy when porting (SAS
numeric) data from one platform to another. Creating transport files is
a platform independent activity and hence needs to anticipate the
problem. In short, if a SAS numeric variable has been defined with less
than 8 bytes, the transport process will add one byte.
If you transport the recreated library and re-recreate it, I'm sure you
will find that the numeric variables have advanced another byte. Keep
doing it and you will end up with all numeric variables defined with
lengths of 8 bytes.
Bob
--
R P Bullock
|