Previous Page | Next Page

Preventing and Fixing Problems

Error and Warning Messages for Transport Files


Bad Transport File

This message appears under one of these conditions:


Catalog file open function is not supported by the XPORT engine

This message appears when you attempt to create a transport file for a catalog or catalog entry by using PROC COPY with the XPORT engine. 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 computer.


DATA= or LIBRARY= parameter expected instead of CATALOG=

This message is displayed at the target computer when PROC CIMPORT contains a CATALOG= destination member and the source computer used PROC CPORT with the LIBRARY= destination member. The target computer 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 LIBNAME= option in PROC CPORT specifies a destination member of type LIBRARY, PROC CIMPORT must also specify either a LIBNAME= or a 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

Usually, this message appears when you use the CIMPORT procedure to import a data set at the target computer. There are two possible explanations.


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

This message means that transporting this catalog entry type between computer 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 computer and then re-create the modules.


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

This message appears when you attempt to use PROC CPORT to move a catalog entry from SAS 9 back to SAS 6. SAS 9 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 whose name exceeds eight characters from a source computer that is running SAS 9 to a SAS 6 library. Here is an 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 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 eight characters and try the transport operation again.


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

This message appears when you use PROC COPY to move a data set whose name exceeds eight characters from a source computer that is running SAS 9 to a SAS 6 library. Here is an example of such a message

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

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

The VALIDVARNAME 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 eight characters and try the transport operation again.


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

Usually, this message indicates a file corruption. The most likely explanation is that your site's communications software inserted carriage returns into the transport file.

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

This example shows an example of a transport file that contains a carriage-return character (0D) and a line-feed character (0A) toward the end of the first record. See the 0D and 0A hexadecimal 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 might have occurred. To test this possibility, at the target computer, 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 might prove that the transport file that you are trying to restore is corrupt. In this case, re-create the transport file at the source computer, transfer it, and restore it at the target computer.

At the source computer, find out whether the transport file's attributes include carriage returns. For information about listing and correcting file attributes, see the chapter that is appropriate to your operating environment.

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

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


Given transport file is bad

For recovery actions, see Bad Transport File.


Internal error from getting data

Usually, this message appears because either a file was transported in a format other than BINARY or the attributes of the transport file changed while in transit to the target computer.

For recovery actions, see Verifying Transfer Format and Transport File Attributes.


Invalid data length

Usually, this message appears because either a file was transported in a format other than BINARY or the attributes of the transport file changed while in transit to the target computer.

For recovery actions, see Verifying Transfer Format and Transport File Attributes.


Member or library unavailable for use in file filename

Usually, this message appears because either a file was transported in a format other than BINARY or the attributes of the transport file changed while in transit to the target computer.

For recovery actions, see Verifying Transfer Format and Transport File Attributes.

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

Use either of these actions to recover from this problem:

The SORTEDBY= data set option information is included in SAS 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 computer when PROC CIMPORT contains a DATA= destination member and the source computer used PROC CPORT with the LIBRARY= destination member. Although, the target computer 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 the destination library, specify the LIBRARY= option instead of the DATA= option in PROC CIMPORT.


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

Usually, this message appears when you use the XPORT engine to create a SAS 9 PROC SQL view in transport format in a SAS 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 computer and re-create the PROC SQL view there.


Requested function is not supported

This message indicates a failure to move a library from a source computer that is running SAS 9 to a library on a target computer that is running SAS 6 because of cross-version incompatibilities. For example, SAS 9 features such as generations data sets and integrity constraints are not supported.

To recover, you must remove SAS 9 features from the library or the member to be moved to the library on the computer that is running SAS 6 and try the transport operation again. Preceding notes in the log can give a hint about the offending SAS 9 feature that is not supported. Here is an example:

NOTE: Integrity constraint mc defined.

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

For tips about removing SAS 9 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 variable is illegal for file Version-6-data-set .


Truncated record

Usually, this message appears because either a file was transported in a format other than BINARY or the attributes of the transport file changed during transfer to the target computer.

For recovery actions, see Verifying Transfer Format and Transport File Attributes.

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 chapter that is appropriate to your operating environment.


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

This message appears when you attempt to update a file whose format is foreign to that of the accessing computer. Use PROC CONTENTS on the file to verify the file's data representation. A data representation of FOREIGN proves that the formats of the file and the accessing computer 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.


The value y code is not a valid SAS name; Skipping data set due to error

These error and warning messages appear when you use PROC CIMPORT in SAS 8 to read a transport file that was created using PROC CPORT in SAS 9.

PROC CPORT and PROC CIMPORT are forward compatible (SAS 9 CIMPORT can read a SAS file created using SAS 8 CPORT), but they are not backward compatible (SAS 8 CIMPORT cannot read a SAS file created using SAS 9 CPORT).

To identify the version of SAS that was used to create the transport file, use this SAS program, specifying the appropriate transport file.

data _null_;
infile 'transport-file-path';
input @109 rel $7.;
put rel=;
stop;
run;

The output shows the version of SAS that was used to create the transport file.


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

This message appears when using PROC CIMPORT to move a SAS 9 data set that contains long variable names to a SAS 6 data set. Here is an example:

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

The SAS 9 variable name Region_Of_The_Country exceeds the maximum variable name length of eight characters that is supported in SAS 6. To recover, in the SAS session on the client, set the VALIDVARNAME system option to V6 to enable automatic truncation of long variable names and try the transport operation again. Here is an example:

options validvarname=v6;

In this example, Region_Of_The_Country truncates to Region_O . However, if the data set contains multiple variables names in which the first eight characters conflict, SAS 9 uses a truncation algorithm that ensures uniquely truncated variable names. For details, see Regressing SAS Data Sets to SAS 6 Format.

Previous Page | Next Page | Top of Page