Previous Page | Next Page

Processing Data Using Cross-Environment Data Access (CEDA)

SAS File Processing with CEDA


What Types of Processing Does CEDA Support?

CEDA supports SAS 7 and later SAS files that are created in directory-based operating environments like UNIX, Windows, and OpenVMS. CEDA provides the following SAS file processing for these SAS engines:

BASE

default Base SAS engine for SAS 9 (V9), SAS 8 (V8), and SAS 7 (V7).

SASESOCK

TCP/IP port engine for SAS/CONNECT software.

TAPE

sequential engine for SAS 9 (V9TAPE), SAS 8 (V8TAPE), and SAS 7 (V7TAPE).

SAS File Processing Provided by CEDA
SAS File Type Engine Supported Processing
SAS data file BASE, TAPE, SASESOCK input and output  (table note 1) processing
PROC SQL view BASE input processing
SAS/ACCESS view for Oracle or Sybase BASE input processing
MDDB file (table note 2) BASE input processing

TABLE NOTE 1:  For output processing that replaces an existing SAS data file, there are behavioral differences. For more information, see Behavioral Differences for Output Processing. [arrow]

TABLE NOTE 2:  CEDA supports SAS 8 and later MDDB files. [arrow]


Behavioral Differences for Output Processing

For output processing that replaces an existing SAS data file, the BASE and TAPE engines behave differently regarding the following attributes:

encoding

  • The BASE engine uses the encoding of the existing file; that is, the encoding is cloned.

  • The TAPE engine uses the current SAS session encoding.

  • For both the BASE and TAPE engines, the COPY procedure uses the encoding of the file from the source library (that is, the file being copied), regardless of whether the file existed in the target library.

data representation

The BASE and TAPE engines use the data representation of the native environment, except with the COPY procedure. By default, PROC COPY uses the data representation of the file that is copied. When writing out the file, if you want PROC COPY to use the data representation of the target operating system and not the data representation of the source file, you must specify the NOCLONE option.


Restrictions for CEDA

CEDA has the following restrictions:

Note:   If you encounter these restrictions because your files were created under a previous version of SAS, consider using the MIGRATE procedure, which is documented in the Base SAS Procedures Guide. PROC MIGRATE retains many features, such as integrity constraints, indexes, and audit trails.  [cautionend]


Understanding When CEDA Is Used to Process a File

Because CEDA translation is transparent, you might not be aware when CEDA is being used. Knowing when CEDA is used could be helpful because, for example, CEDA translation might require additional resources.

Starting in SAS 9, by default, SAS writes a message to the log when CEDA is used. Here is an example:

Note: Data file HEALTH.GRADES.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.

CEDA is used in these situations:


Determining Whether Update Processing Is Allowed

If a file's data representation is the same as the data representation 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:

CONTENTS Output Showing Data Representation

                                        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 24, 2007 10:11:39                Observation Length    56
Last Modified        Wednesday, January 24, 2007 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.0200A0
        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

Previous Page | Next Page | Top of Page