MIGRATE Procedure

Example 4: Migrating with Incompatible Catalogs on the Same Computer

Features:

IN=

OUT=

SLIBREF=

Notes: You are encouraged to run PROC MIGRATE with validation tools. See Migrating a Library with Validation Tools .

To learn whether this is the correct PROC MIGRATE example for your migration, use the PROC MIGRATE Calculator on the SAS Web site at http://support.sas.com/rnd/migration/planning/files/migratecalc/

Details

In this example, the following is demonstrated:
  • The source and target libraries are on one computer.
  • The SLIBREF= argument accesses the catalogs in the source library. (See Using the SLIBREF= Option for important information and to learn whether SLIBREF= is required.) The SLIBREF= argument must be assigned to a SAS/CONNECT or SAS/SHARE server running in a session of SAS that can access the catalogs. For example, if the source library contains SAS 8.2 catalogs created by 32-bit Solaris, SLIBREF= must be assigned to a SAS 8.2 32-bit Solaris server. If catalogs were created in SAS 6, SLIBREF= must be assigned through a SAS 8.2 server that is compatible with the data representation of the SAS 6 catalogs.
  • The IN= argument accesses the rest of the supported file types in the source library. Because the source and target libraries are on one computer, NFS is not used.

Program

signon v8srv sascmd='my-v8–sas-invocation-command';
rsubmit;
libname srclib <engine> 'source-library-pathname';
endrsubmit;
libname srclib <engine> server=v8srv;
libname source <engine> 'source-library-pathname';
libname target <engine> 'target-library-pathname';
proc migrate in=source out=target slibref=srclib <options>;
run;
proc migrate out=target slibref=srclib <options>;
run;

Program Description

From a session in the current release of SAS, submit the SIGNON command to invoke a SAS/CONNECT server session.
signon v8srv sascmd='my-v8–sas-invocation-command';
Within this remote SAS 8.2 session, assign a libref to the source library that contains the library members to be migrated.Use the RSUBMIT and ENDRSUBMIT commands for SAS/CONNECT.
rsubmit;
libname srclib <engine> 'source-library-pathname';
endrsubmit;
In the local (client) session in the current release, assign to the same source library as in step 2.But do not assign the libref to a physical location. Instead, specify the SERVER = option with the server ID (in this example, V8SRV) that you assigned in the SIGNON command in step 1.
libname srclib <engine> server=v8srv;
Assign two librefs: one to the source library and another to the target library.The source library is the same one that is assigned in step 2, but you must use a different libref.
libname source <engine> 'source-library-pathname';
libname target <engine> 'target-library-pathname';
Use PROC MIGRATE with the SLIBREF= option.For the IN= and OUT= options, specify the librefs that you assigned in step 4 (in this example, SOURCE and TARGET, respectively). Set SLIBREF= to the libref that uses the SERVER= option (in this example, SRCLIB).
proc migrate in=source out=target slibref=srclib <options>;
run;
Alternatively, if CATALOG is the only member type in the library and you are using the SLIBREF= option, then omit the IN= argument.
proc migrate out=target slibref=srclib <options>;
run;