03-29-2017 05:21 PM
I have to copy datasets (.SAS7BDAT) from one library to another library and convert them into UNIX dataset (.sas7bdat)
I assume that datasets present in original location are from different OS.
So to convert them into UNIX datasets, I used following approach:
libname source 'XYZ';
libname target "abc" outrep=HP_UX_32;
proc copy in=source out=target noclone memtype=data;run;
But inTARGET location these datasets are not present in UNIX .sas7bdat format. Since when I use datasets from TARGET location it shows following NOTE in log.
NOTE: Data file RAWCRO.XX.DATA is in a format that is native to another host, or the file encoding does not match the session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce performance.
Please let me know.
03-29-2017 06:14 PM
04-03-2017 12:51 PM
This issue is marked as solved, but I want to double check with you, in case you didn't get the solution you wanted. Did you intend to: (A) convert the data set to the data representation of the target environment? Or (B) convert the data set to be used in an environment (32-bit HP-UX) that is different from the target?
A common reason customers use the OUTREP= LIBNAME option with PROC COPY is when they need to share a library with someone who is running a different operating environment. If (B) is what you wanted, and that other person is on 32-bit HP-UX, then your code is correct. When that other person accesses the data set you created with OUTREP=, they won't see the CEDA message and they won't be subject to CEDA issues.
If what you want instead is (A), to convert the data set to the data rep of the session where you're running, then remove OUTREP= from the LIBNAME. You have specified PROC COPY with NOCLONE, which defaults to the data representation of the operating environment where you are running (if you do not specify the OUTREP= option).
Note that SAS has not run on 32-bit HP-UX environments since SAS 8.2. If you're on SAS 9 then you are not running on 32-bit HP-UX.
If you are confused about your SAS session's data representation, just create a temporary data set and issue PROC CONTENTS against it:
data check_session; x=1; run;
proc contents data=check_session; run;
Need further help from the community? Please ask a new question.