Format catalogs must be converted when moving from a Microsoft Windows 32-bit operating system to a Microsoft Windows 7 64-bit operating system


SAS format catalogs are machine-dependent. Attempting to use a format that was created in a different operating environment causes the following error:

ERROR: File FORMATS.CATALOG was created for a different operating system. NOTE: The SAS System stopped processing this step because of errors.

This error can also occur when you double-click on a data set to view it and the variables are associated with permanent user-defined formats. To view the formatted values, you must convert the format catalog for use in the new operating environment.

If you have a Microsoft Windows 32-bit format catalog and want to use it in a Microsoft Windows 64-bit environment, you must have access to a 32-bit SAS session to convert it. If you do not have access to SAS in 32-bit Windows, then the only recourse is to submit the system option NOFMTERR to avoid the error. The NOFMTERR system option allows underlying data values to be displayed, and the user-defined formats are ignored.       

This note is intended to provide you with a sample for migrating a 32-bit Windows format catalog to the 64-bit Windows architecture.

In Windows 32-bit SAS, create a transport file with the CPORT procedure:

  1.   libname my32 'c:\path-to-library'; /* path where Formats.sas7bcat exists */ filename trans 'c:\path-to-library\filename.cpt'; /* transport file you are creating */ proc cport lib=my32 file=trans memtype=catalog; select formats; run; 
  2. In Windows 64-bit SAS, "unload" the transport file:

libname my64 'path-to-newlib';  /* path to store the new Formats.sas7bcat file */
filename trans 'c:\path-to-library\filename.cpt';  /* same as in Step 1 above */

proc cimport infile=trans lib=my64;
run;

3. You should now have a file called Formats.sas7bcat in the MY64 library.

The FORMAT procedure with the CNTLOUT/CNTLIN options is the most robust method available for migrating user-defined format libraries. See SAS KB0039553, "How to use the CNTLOUT= and CNTLIN= options in the FORMAT procedure to move formats from one platform to another." For more information about PROC CPORT, see Overview: CPORT Procedure.