Chapter Contents

Previous

Next
Moving and Accessing SAS Files across Operating Environments

Error and Warning Messages

For all hosts, the most common error and warning messages with recovery actions are presented here. For host-specific messages, see the appropriate operating environment chapter.


Bad Transport File

The primary cause for this message is that you are attempting to use PROC CIMPORT to move a transport file that was created in Version 8 to a host that is running Version 6. You cannot move a transport file from a Version 8 SAS session on a source host to a Version 6 SAS session on a target host.

Another possibility is that either a file was transported in some format other than BINARY or the attributes of the transport file changed while in transit to the target host.

See Verifying Transfer Format and Transport File Attributes for recovery actions.

An alternative cause is that your site may use a translation table other than the default. A customized translation table is set with the TRANTAB= system option. See SAS Language Reference: Dictionary for details about setting the TRANTAB= system option. Verify the value of the TRANTAB= system option:

proc options option=trantab;
run;

If you discover that your site is using an alternative translation table, you must restore the option to its default value.

options trantab=( );

Then create the transport file again, transfer it to the target host, and import the file at the target host.

Another possible explanation applies to a source host that runs SAS Release 6.12 and a target host that imports the file at the target host that runs SAS Release, 6.08, 6.09E, or 6.10. Data set sort features (set through the SORTEDBY= data set option) are included in the Release 6.12 CPORT procedure but not in the Release 6.08 CIMPORT procedure.

Use either of two options to recover from this problem:

The SORTEDBY= data set option information is included in Release 6.12 PROC CPORT.


Catalog file open function is not supported by the XPORT engine

You see this message when you attempt to create a transport file for a catalog or catalog entry by using PROC COPY with the XPORT engine. Instead, you must use PROC CPORT to create a transport file for a catalog or catalog entry and use PROC CIMPORT to import them at the target host.


DATA= or LIBRARY= parameter expected instead of CATALOG=

This message is displayed at the target host when PROC CIMPORT contains a CATALOG= destination member and the source host used PROC CPORT with the LIBRARY= destination member. The target host must use either the DATA= or LIBRARY= member type. Here is an example:

proc cport file=in libname=out;
proc cimport infile=in catalog=new;

Because the PROC CPORT LIBNAME= option specifies a destination member of type LIBRARY, the PROC CIMPORT must also specify either a LIBNAME= or DATA= option.

In order to select only a catalog entry type from an imported library, specify the ET= option in PROC CIMPORT. To exclude a catalog entry type, use the EET= option. Here are examples:

proc cimport infile=in library=new et=program memtype=catalog;
proc cimport infile=in library=new eet=program memtype=catalog;
In the first example, only catalog entries of type PROGRAM are imported. In the second example, only catalog entries of type PROGRAM are excluded. MEMTYPE=CATALOG restricts the import to catalogs only.


filename is not a SAS file

You typically see this message when using the CIMPORT procedure to import a data set at the target host. There are two possible explanations.

The transport file that you are trying to import by using PROC CIMPORT may have been created by using the XPORT engine with either the COPY procedure or the DATA step. Read the beginning of the file to determine how the transport file was created. If the XPORT engine created the transport file, the beginning of the file contains this text:

HEADER RECORD*******LIBRARY HEADER RECORD!!!!!!!00

If the CPORT procedure created the transport file, the beginning of that file contains this text:

**COMPRESSED** **COMPRESSED** **COMPRESSED** **COM

Note:   If you set the NOCOMPRESS option in PROC CPORT, compression is suppressed, which prevents the display of the preceding text in a transport file.  [cautionend]

If incompatible methods were used to create and then restore the transport file, then use the correct method to restore the transport file.

Another possible explanation is that your site may use a translation table other than the default. For recovery actions for this problem, see Bad Transport File.


Entry type catalog-entry-type is not supported by CPORT

Transporting this catalog entry type between hosts and across SAS releases is not supported.

Because you cannot retrieve the definitions from the module itself, you can try to move the SAS statements that defined the entry type (such as IML modules) to the target host and then re-create the modules.


Entry type catalog-entry-type is not compatible to earlier release

You see this message when you attempt to use PROC CPORT to move a catalog entry from Version 8 back to Version 6. Version 8 does not support the backward compatibility of this catalog entry.


File library.member.DATA has too long a member name for the XPORT engine

This message appears when you use the XPORT engine with PROC COPY to move a data set on a Version 8 source host whose name exceeds eight characters to a Version 6 library. Here is an explicit example of such a message:

ERROR: The file OUT.THIS_IS_LONG_NAMED_DATA.DATA 
 has too long a member name for the XPORT engine.

The member name THIS_IS_LONG_NAMED_DATA exceeds the eight-character member name length, which is enforced by the Version 5 feature set in which the XPORT engine was introduced.

The VALIDVARNAME SAS system option and the assigned value of V6, which enables automatic truncation of long variable names, does not support member names. To recover, copy the member to another member whose name does not exceed 8 characters and retry the transport operation.


File library.member.DATA has too long a member name for the V6 engine

This message appears when using PROC COPY to move a data set on a Version 8 source host whose name exceeds 8 characters to a Version 6 library. Here is an explicit example of such a message:

ERROR: The file V6LIBMYDATABASE.DATA 
 has too long a member name for the V6 engine.

The Version 8 data set name MYDATABASE exceeds the maximum member name length of 8 that is supported in Version 6. Version 6 interprets the data set name MYDATABASE as containing 10 characters, which exceeds its maximum length of 8.

The VALIDVARNAME SAS system option and the assigned value of V6, which enables automatic truncation of long variable names, does not support member names. To recover, rename the member or copy it to another member whose name does not exceed 8 characters and retry the transport operation.


File libref.ALL is damaged. I/O processing did not complete

This message typically alerts you to a file corruption. The likely explanation is that your site's communications software inserted carriage returns into the transport file.

At the target host, you can use a host-specific utility (such as the UNIX hexadecimal dump utility xd) to view the transport file in hexadecimal format to determine if carriage returns were inserted. See the UNIX xd(1) manual page for details. As another example, for OS/390, use the SPF 1 command for browsing, select a data set, and enter hex on in the command line.

Hexadecimal Representation of a Transport File shows an example of a transport file that contains a carriage return character (0D) and a line feed character (OA) toward the end of the first record. See the 0D and 0A hex values in the first two positions of the last line.


Hexadecimal Representation of a Transport File
48 45 41 44 45 52 20 52 45 43 4F 52 44 2A 2A 2A HEADER R ECORD*** 2A 2A 2A 2A 4C 49 42 52 41 52 59 20 48 45 41 44 ****LIBR ARY HEAD 45 52 20 52 45 43 4F 52 44 21 21 21 21 21 21 21 ER RECOR D!!!!! 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 00000000 000000 30 30 30 30 30 30 30 30 30 30 30 30 30 30 20 20 00000000 0000 0D 0A 53 41 53 20 20 20 20 20 53 41 53 20 20 20 ...SAS SAS

If you do not see carriage return or line feed characters, another form of corruption that is not immediately apparent may have occurred. To test this possibility, at the target host, create another transport file from a member of the same type and then view its hexadecimal representation. Compare the appearance of the assumed uncorrupted file that you just created with the suspected corrupted file that you are trying to restore. A visual comparison may prove that the transport file that you are trying to restore is indeed corrupt. In this case, re-create the transport file at the source host, transfer it, and restore it at the target host.

At the source host, determine whether the transport file's attributes include carriage returns. For information about listing and correcting file attributes, see the appropriate operating environment chapter.

At the source host, transfer the transport file to the target host again.

If you are still unable to restore a transport file that has the correct file attributes, you may try using the re-blocking program in Reblocking a Transport File.


Given transport file is bad

See Bad Transport File for recovery actions.


Internal error from getting data

This message typically appears because either a file was transported in some format other than BINARY or the attributes of the transport file changed while in transit to the target host.

See Verifying Transfer Format and Transport File Attributes for recovery actions.


Invalid data length

This message typically appears because either a file was transported in some format other than BINARY or the attributes of the transport file changed while in transit to the target host.

See Verifying Transfer Format and Transport File Attributes for recovery actions.


Member or library unavailable for use in file file

This message typically appears because either a file was transported in some format other than BINARY or the attributes of the transport file changed while in transit to the target host.

See Verifying Transfer Format and Transport File Attributes for recovery actions.

Another possible explanation applies to a Release 6.12 SAS session on a source host and a Release 6.08 SAS session on a target host. Data set sort features (specified by using the SORTEDBY= data set option) are included in the Release 6.12 CPORT procedure but not in the Release 6.08 CIMPORT procedure.

Use either of two options to recover from this problem:

The SORTEDBY= data set option information is included in Release 6.12 PROC CPORT.


More library members exist in the input file. For all of them to get converted, please specify LIBRARY=libref parameter in the PROC statement

This warning message is displayed at the target host when PROC CIMPORT contains a DATA= destination member and the source host used PROC CPORT with the LIBRARY= destination member. Although, the target host successfully imports only one data set, the message indicates that other members are contained in the library that can also be imported. Here is an example:

proc cport file=in library=out;
proc cimport infile=in data=new;

In order to expand the import operation to include the entire contents of destination library, specify the LIBRARY= option rather than the DATA= option in PROC CIMPORT.


PROC SQL will not store a V8 view into a V6 library

This message is typically displayed when you use the XPORT engine to create a Version 8 PROC SQL view in transport format in a Version 6 library. However, you can use the XPORT engine to create an SQL table.

To recover, transport the data set that contains the SQL table to the target host and re-create the PROC SQL view there.


Requested function is not supported

This message indicates a failure to move a library from a Version 8 source host to a library on a Version 6 target host because of cross-version incompatibilities. For example, Version 8 features such as generations data sets and integrity constraints are not supported.

To recover, you must remove Version 8 features from the library or the member to be moved to the library on the Version 6 host and retry the transport operation. Preceding notes in the log can hint at the offending Version 8 feature that is not supported. Here is an example:

NOTE: Integrity constraint mc defined.

You can infer from this message that Version 6 does not support integrity constraints.

For tips on how to remove Version 8 features, see the recovery actions for these messages: File library.member.DATA has too long a member name for the V6 engine and Variable name XXXXXXXXX is illegal for file Version-6-data-set .


Truncated record

This message typically appears because either a file was transported in some format other than BINARY or the attributes of the transport file changed in transit to the target host.

See Verifying Transfer Format and Transport File Attributes for recovery actions.

This message can indicate that the transport file was moved to a virtual disk or shared disk with other operating environments such as DOS, Macintosh, or UNIX. For recovery actions, see the appropriate operating environment chapter.


Updating not allowed for libref.member-name because it was created for a different operating system

This message appears when a host attempts to update a file whose format is foreign to that of the accessing host. Use PROC CONTENTS on the file to verify the file's data representation. A data represention of FOREIGN proves that the formats of the file and the accessing host are incompatible.


UTILITY FILE OPEN function is not supported by the XPORT engine

This message appears when you attempt to use PROC COPY with the XPORT engine to create a transport file for a utility file, such as an MDDB. The XPORT engine does not support utility files.


Variable name XXXXXXXXX is illegal for file Version-6-data-set

This message appears when using PROC CIMPORT to move a Version 8 data set that contains long variable names to a Version 6 data set. Here is an explicit example of such a message:

ERROR: The variable name Region_Of_The_Country
is illegal for file V6LIB.CITY.DATA.

The Version 8 variable name Region_Of_The_Country exceeds the maximum variable name length of 8 that is supported in Version 6. To recover, in the SAS session on the local host, set the VALIDVARNAME SAS system option to V6 to enable automatic truncation of long variable names. Retry the transport operation. Here is an example of setting this variable:

options validvarname=v6;
In this example, Region_Of_The_Country truncates to Region_O However, if the data set contains multiple variables whose first 8 characters conflict, Version 8 uses a truncation algorithm that ensures uniquely truncated variable names. For details, see Regressing SAS Data Sets from Version 8 to Version 6 Format.


Chapter Contents

Previous

Next

Top of Page

Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.