encoding
is a set of characters (letters, logograms, digits, punctuation, symbols, control
characters, and so on) that have been mapped to numeric values (called code points)
that can be used by computers. The code points are assigned to the characters in the
character set by applying an encoding method. Some examples of encodings are
Wlatin1 and Danish EBCDIC.
incompatible
describes a file that has a different data representation or encoding than the current
SAS session. CEDA enables access to many types of incompatible files.
Advantages of CEDA
CEDA offers these advantages:
You can transparently process a supported SAS file with no knowledge of the file's
data representation or character encoding.
No transport files are created. CEDA requires a single translation to the current
session's data representation, rather than multiple translations from the source
representation to transport file to target representation.
CEDA eliminates the need to perform multiple steps in order to process the file.
CEDA does not require a sign-on as is needed in SAS/CONNECT or a dedicated
server as is needed in SAS/SHARE.
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).
Table 32.1 SAS File Processing Provided by CEDA
SAS File Type Engine Supported Processing
SAS data file BASE, TAPE, SASESOCK
input and output
*
PROC SQL view BASE input
710 Chapter 32 Processing Data Using Cross-Environment Data Access (CEDA)
SAS File Type Engine Supported Processing
SAS/ACCESS view for
Oracle or Sybase
BASE input
MDDB file
**
BASE input
*
For output processing that replaces an existing SAS data file, there are behavioral differences. For more
information, see “Behavioral Differences for Output Processing” on page 711.
**
CEDA supports SAS 8 and later MDDB files.
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 file from the source library. That is,
the encoding is cloned.
The TAPE engine uses the current SAS session encoding.
For both the BASE and TAPE engines, by default PROC COPY uses the
encoding of the file from the source library. If, instead, you want to use the
encoding of the current SAS session, specify the NOCLONE option. If you want
to use a different encoding, specify the NOCLONE option and the ENCODING=
option. When you use PROC COPY with SAS/SHARE or SAS/CONNECT, the
default behavior is to use the encoding of the current SAS session.
data representation
The BASE and TAPE engines use the data representation of the current SAS
session, except with PROC COPY.
For both the BASE and TAPE engines, by default PROC COPY uses the data
representation of the file from the source library. If, instead, you want to use the
data representation of the current SAS session, specify the NOCLONE option. If
you want to use a different data representation, specify the NOCLONE option
and the OUTREP= option. When you use PROC COPY with SAS/SHARE or
SAS/CONNECT, the default behavior is to use the data representation of the
current SAS session.
Restrictions for CEDA
CEDA has the following restrictions:
SAS catalogs are not supported. Catalog entries could include formats, stored
compiled macros, SAS/AF applications, SAS/GRAPH output, SAS code, SCL code,
data, and other entry types that are specific to various SAS procedures.
Update processing is not supported.
Integrity constraints cannot be read or updated.
An audit trail file cannot be updated, but it can be read.
Indexes are not supported. Therefore, WHERE optimization with an index is not
supported.
Extended attributes cannot be updated, but they can be read.
SAS File Processing with CEDA 711
Other files that are not supported include DATA step views, SAS/ACCESS views
that are not for SAS/ACCESS for Oracle or Sybase, stored compiled DATA step
programs, item stores, DMDB files, FDB files, or any SAS file that was created prior
to SAS 7.
On z/OS, members of UNIX file system libraries can be created using any SAS data
representation. However, when bound libraries are created, they are assigned the data
representation of the SAS session that creates the library. SAS does not allow the
creation of bound library members with a data representation that differs (except for
the character encoding) from the data representation of the library. For example, if
you create a bound library with 31-bit SAS on z/OS, the library has a data
representation of MVS_32 for the duration of its existence, and you cannot use the
OUTREP option of the LIBNAME statement to create a member in the library with a
data representation other than MVS_32. For more information about library
implementation types for BASE and sequential engines on z/OS, see SAS
Companion for z/OS.
Because the BASE engine translates the data as the data is read, multiple procedures
require SAS to read and translate the data multiple times. In this way, the translation
could affect system performance.
If a data set is damaged, CEDA cannot process the file in order to repair it. CEDA
does not support update processing, which is required in order to repair a damaged
data set. To repair the file, you must move it back to the environment where it was
created or a compatible environment that does not invoke CEDA processing. For
information about how to repair a damaged data set, see the REPAIR statement in the
DATASETS procedure in Base SAS Procedures Guide.
Transcoding could result in character data loss when encodings are incompatible. For
information about encoding and transcoding, see the SAS National Language
Support (NLS): Reference Guide.
Loss of precision can occur in numeric variables when you move data between
operating environments. If a numeric variable is defined with a short length, you can
try increasing the length of the variable. Full-size numeric variables are less likely to
encounter a loss of precision with CEDA. For more information, see “Numerical
Accuracy in SAS Software” on page 60.
Numeric variables have a minimum length of either 2 or 3 bytes, depending on the
operating environment. In an operating environment that supports a minimum of 3
bytes (such as Windows or UNIX), CEDA cannot process a numeric variable that
was created with a length of 2 bytes (for example, in z/OS). If you encounter this
restriction, then use the XPORT engine or the CPORT and CIMPORT procedures
instead of CEDA.
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.
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 (for example, CEDA translation
might require additional resources).
By default, SAS writes a message to the log when CEDA is used. Here is an example:
712 Chapter 32 Processing Data Using Cross-Environment Data Access (CEDA)
Log 32.1 Log Output from Processing a File from a Different Operating Environment
NOTE: Data file HEALTH.OXYGEN.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:
when the encoding of character values for the SAS file is incompatible with the
currently executing SAS session encoding.
when the data representation of the SAS file is incompatible with the data
representation of the currently executing SAS session. For example, an
incompatibility can occur if you move a file from an operating environment like
Windows to an operating environment like UNIX, or if you have upgraded to 64-bit
UNIX from 32-bit UNIX.
In the following table, each row contains a group of operating environments that are
compatible with each other. CEDA is used only when you create a file with a data
representation in one row and process the file under a data representation of another
row. (The current release of SAS does not run on some of these environments, but
they are included here for completeness.)
Table 32.2 Compatibility across Environments
Data Representation
Value Environment
ALPHA_TRU64
LINUX_IA64
LINUX_X86_64
SOLARIS_X86_64
Tru64 UNIX
*
Linux for Itanium-based systems
*
Linux for x64
*
Solaris for x64
*
ALPHA_VMS_32
OpenVMS Alpha
**
ALPHA_VMS_64
VMS_IA64
OpenVMS Alpha
**
OpenVMS on HP Integrity
**
HP_IA64
HP_UX_64
RS_6000_AIX_64
SOLARIS_64
HP-UX for the Itanium Processor Family Architecture
HP-UX for PA-RISC, 64-bit
AIX
Solaris for SPARC
HP_UX_32
MIPS_ABI
RS_6000_AIX_32
SOLARIS_32
HP-UX for PA-RISC
MIPS ABI
AIX
Solaris for SPARC
SAS File Processing with CEDA 713
Data Representation
Value Environment
LINUX_32
INTEL_ABI
Linux for Intel architecture
ABI for Intel architecture
MVS_32 31-bit SAS on z/OS
MVS_64_BFP 64-bit SAS on z/OS
OS2 OS/2 for Intel
VAX_VMS OpenVMS VAX
WINDOWS_32
WINDOWS_64
32-bit SAS on Microsoft Windows
***
64-bit SAS on Microsoft Windows (for both Itanium-based
systems and x64)
***
*
Although all four of the environments in this group are compatible, catalogs are an exception. Catalogs are
compatible between Tru64 UNIX and Linux for Itanium. Catalogs are compatible between Linux for x64
and Solaris for x64.
**
Although these OpenVMS environments have different data representations for some compiler types, SAS
data sets that are created by the BASE engine do not store the data types that are different. Therefore, if
the encoding is compatible, CEDA is not used between these environments. However, note that SAS 9
does not support SAS 8 catalogs from OpenVMS. You can migrate the catalogs with the MIGRATE
procedure. For more information, see the Base SAS Procedures Guide.
***
Although these Windows environments are compatible, catalogs are an exception. Catalogs are not
compatible between 32-bit and 64-bit SAS for Windows.
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, if a file was created in a 64-bit Solaris environment or
if the OUTREP= option was used to designate the file with that data representation, then
you can update the file in a 64-bit SAS session on Solaris for SPARC, HP-UX, or AIX.
Otherwise, if CEDA is used to translate the file, you cannot update the file. If you
attempt to update the file, then you receive an error message stating 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 HP_UX_64, RS_6000_AIX_64, SOLARIS_64, HP_IA64.
714 Chapter 32 Processing Data Using Cross-Environment Data Access (CEDA)
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.69.163