Because CEDA translation is transparent, you might not be aware when CEDA is being used. However, knowing when CEDA is used could be helpful, for example, because CEDA translation may require additional resources.
CEDA is used in these situations:
when the data representation of the SAS file differs from the data representation that is used by SAS for the operating environment and platform. This can occur, for example, if you move a file from one operating environment like Windows to a different operating environment like UNIX, or if you have upgraded to a 64-bit platform from a 32-bit platform.
Note | Processing a foreign file could result in numeric data loss during data translation. For example, if you move a file that contains a very large or small number from 64-bit UNIX to 32-bit z/OS, the value could lose precision or be significantly reduced in value due to differences in the data representation on the hosts . |
The following table groups (within a single cell ) the compatible data representation values and environments. (Environments are named by the operating system and platform on which SAS is executed.) With the noted exception, CEDA is used if you access a SAS file with a data representation value in one group from an environment in another group .
Data Representation Value | Environment |
---|---|
ALPHA_TRU64 | Compaq Tru64 UNIX |
ALPHA_VMS_32 | OpenVMS Alpha on 32-bit platform [1] |
ALPHA_VMS_64 | OpenVMS Alpha on 64-bit platform [1] |
HP_IA64 | HP UX on Itanium 64-bit platform |
HP_UX_64 | HP UX on 64-bit platform |
RS_6000_AIX_64 | AIX UNIX on 64-bit RS/6000 |
SOLARIS_64 | Sun Solaris on 64-bit platform |
HP_UX_32 | HP UX on 32-bit platform |
MIPS_ABI | ABI UNIX on 32-bit platform |
RS_6000_AIX_32 | AIX UNIX on 32-bit RS/6000 |
SOLARIS_32 | Sun Solaris on 32-bit platform |
LINUX_32 | Linux for Intel Architecture on 32-bit platform |
INTEL_ABI | ABI UNIX on Intel 32-bit platform |
MVS_32 | z/OS on 32-bit platform |
OS2 | OS/2 on Intel 32-bit platform |
VAX_VMS | VAX VMS |
WINDOWS_32 | Microsoft Windows on 32-bit platform |
WINDOWS_64 | Microsoft Windows 64-Bit Edition |
[1] Although these 32-bit and 64-bit OpenVMS Alpha systems have different data representations for some compiler data types, SAS data sets that are created by the BASE engine do not store the data types that are different; therefore, CEDA is not required between these two groups. |
when the encoding of character values for the SAS file is incompatible with the currently executing SAS session encoding.
Note | Transcoding could result in character data loss. For information about encoding and transcoding, see SAS National Language Support (NLS): User's Guide . |
Note | Starting in SAS 9, you can tell SAS to display a message when CEDA is being used by setting the SAS system option MSGLEVEL=I: options msglevel=i; |
Here is an example of the message:
INFO: Data file HEALTH.GRADES.DATA is in a format native to another host or the file encoding does not match the session encoding. Cross Environment Data Access will be used, which may require additional CPU resources and reduce performance.
If a file's data representation is the same as that of the processing environment, and if the encoding is compatible with the currently executing SAS session encoding, then you can manually update the file, because CEDA is not needed in order to translate the file. For example, in a Windows environment, if a file was created in a Windows environment or if the OUTREP= option was used to designate the file in Windows data representation, then you can update the file.
Otherwise, if CEDA is used to translate the file, you cannot update it. If you attempt to update the file, then you will receive an error message that says that updating is not allowed. For example:
ERROR: File HEALTH.OXYGEN cannot be updated because its encoding does not match the session encoding or the file is in a format native to another host, such as SOLARIS_32, HP_UX_32, RS_6000_AIX_32, MIPS_ABI.
To determine the data representation and the encoding of a file, you can use the CONTENTS procedure (or the CONTENTS statement in PROC DATASETS). For example, the data set HEALTH.OXYGEN was created in a UNIX environment in SAS 9. The file was moved to a SAS 9 Windows environment, in which the following CONTENTS output was requested :
The SAS System 1 The CONTENTS Procedure Data Set Name HEALTH.OXYGEN Observations 31 Member Type DATA Variables 7 Engine V9 Indexes 0 Created Wednesday, January 22, 2003 10:11:39 Observation Length 56 Last Modified Wednesday, January 22, 2003 10:11:33 Deleted Observations 0 Protection Compressed NO Data Set Type Sorted NO Label Data Representation SOLARIS_32, HP_UX_32, RS_6000_AIX_32, MIPS_ABI Encoding latin1 Western (ISO) Engine/Host Dependent Information Data Set Page Size 5120 Number of Data Set Pages 1 First Data Page 1 Max Obs per Page 90 Obs in First Data Page 31 Number of Data Set Repairs 0 File Name /u/xxxxxx/myfiles/health/\oxygen.sas7bdat Release Created 9.0100A0 Host Created HP-UX Alphabetic List of Variables and Attributes # Variable Type Len 1 AGE Num 8 6 MAXPULSE Num 8 7 OXYGEN Num 8 4 RSTPULSE Num 8 5 RUNPULSE Num 8 3 RUNTIME Num 8 2 WEIGHT Num 8