Chapter Contents |
Previous |
Next |
Moving and Accessing SAS Files across Operating Environments |
Bad Transport File |
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:
proc cport data=grades.junior file='xgrades.junior' sortinfo=no;
proc cport data=grades.junior file='xgrades.junior' v609;
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 |
DATA= or LIBRARY= parameter expected instead of CATALOG= |
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 |
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.
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 |
File library.member.DATA has too long a member name for the XPORT engine |
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 |
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 |
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 |
See Verifying Transfer Format and Transport File Attributes for recovery actions.
Invalid data length |
See Verifying Transfer Format and Transport File Attributes for recovery actions.
Member or library unavailable for use in file file |
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:
proc cport data=grades.jr file='tranfile.jr' sortinfo=no;
proc cport data=grades.jr file='tranfile.j v608;
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 |
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 |
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 |
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 |
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 |
UTILITY FILE OPEN function is not supported by the XPORT engine |
Variable name XXXXXXXXX is illegal for file Version-6-data-set |
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.