Examples of Moving SAS Files |
Using PROC COPY at the Source Computer to Create Transport Files |
This example shows a SAS program that creates three data sets in OpenVMS format and translates them to transport format.
SAS Program That Creates Data Sets and Transport Files libname xptlib xport 'xptlib.dat'; 1 libname xptds xport 'xptds.dat'; 2 /* creates data set GRADES; contains numeric and */ /* character data */ data grades; 3 input student $ test1 test2 final; datalines; Fred 66 80 70 Wilma 97 91 98 ; /* creates data set SIMPLE; contains */ /* character data only */ data simple; 4 x='dog'; y='cat'; z='fish'; run; /* creates data set NUMBERS; contains */ /* numeric data only */ data numbers; 5 do i=1 to 10; output; end; run; /* create a transport file for the entire library */ proc copy in=work out=xptlib; 6 run; /* create a transport file for a data set */ proc copy in=work out=xptds; 7 select grades; run;
Viewing the SAS Log at the Source Computer |
The following example shows a SAS log for SAS Program That Creates Data Sets and Transport Files.
SAS Log at the Source Computer NOTE: SAS (r) Proprietary Software Release 6.12 TS050 1 NOTE: Running on DEC Model 7000 MODEL 740 Serial Number 80000000. 2 NOTE: Libref XPTLIB was successfully assigned as follows: 3 Engine: XPORT Physical Name: Device:system-specific file/pathname XPTLIB.DAT NOTE: Libref XPTDS was successfully assigned as follows: 4 Engine: XPORT Physical Name:system-specific file/pathname XPTDS.DAT NOTE: The data set WORK.GRADES has 2 observations and 4 variables. 5 NOTE: The data set WORK.SIMPLE has 1 observations and 3 variables. NOTE: The data set WORK.NUMBERS has 10 observations and 1 variables. NOTE: Copying WORK.GRADES to XPTLIB.GRADES (MEMTYPE=DATA). 6 NOTE: BUFSIZE is not cloned when copying across dissimilar engines. System Option for BUFSIZE was used. NOTE: The data set XPTLIB.GRADES has 2 observations and 4 variables. NOTE: Copying WORK.NUMBERS to XPTLIB.NUMBERS (MEMTYPE=DATA). NOTE: BUFSIZE is not cloned when copying across dissimilar engines. System Option for BUFSIZE was used. NOTE: The data set XPTLIB.NUMBERS has 10 observations and 1 variables. NOTE: Copying WORK.SIMPLE to XPTLIB.SIMPLE (MEMTYPE=DATA). NOTE: BUFSIZE is not cloned when copying across dissimilar engines. System Option for BUFSIZE was used. NOTE: The data set XPTLIB.SIMPLE has 1 observations and 3 variables. NOTE: Copying WORK.GRADES to XPTDS.GRADES (MEMTYPE=DATA). 7 NOTE: BUFSIZE is not cloned when copying across dissimilar engines. System Option for BUFSIZE was used. NOTE: The data set XPTDS.GRADES has 2 observations and 4 variables.
Verifying Transport Files |
You should verify the integrity of your transport files at the source computer before the files are transferred to the target computer. A successful verification at the source computer can eliminate the possibility that the transport file was created incorrectly. Also, after you transfer the transport file to the target computer, you can compare the transport file that was sent from the source computer with the file that was received at the target computer. For details, see Strategies for Verifying Transport Files.
Transferring the Transport Files to the Target Computer |
Before you transfer a transport file to the target computer, verify its file attributes. This example shows typical output:
Using DIR/FULL to Verify the Attributes of the Transport File vms> DIR/FULL xptlib.dat Directory HOSTVAX:[JOE.XPTTEST] XPTLIB.DAT;1 File ID: (31223,952,0) Size: 7/8 Owner: [HOSTVAX,JOE] Created: 25-APR 2008 16:47:31.34 Revised: 25-APR-2008 16:47:31.69 (1) Expires: Effective: File organization: Sequential Shelved state: Online File attributes: Allocation: 8, Extend: 0, Global buffer count: 0 Version limit: 2 Record format: Fixed length 80 byte records 1 Record attributes: None 2 RMS attributes: None Journaling enabled: None File protection: System:RWED, Owner:RWED, Group:RE, World: Access Cntrl List: None Total of 1 file, 7/8 blocks. $ dir/size xptlib.dat Directory HOSTVAX:[JOE.XPTTEST] XPTLIB.DAT;1 7 Total of 1 file, 7 blocks.
The RECORD FORMAT attribute indicates a fixed record type and an 80-byte record size. These values are required for a successful file transfer across the network. | |
To prevent corruption before you transfer the transport file, remove this value from the RECORD ATTRIBUTES field. An error message alerts you to this condition after you attempt to transfer the corrupted file.
After you verify the attributes of a transport file, use FTP to transfer the transport file to the target computer.
In this example, the target computer retrieves the transport file from the source computer because the source computer does not have permission to write to the operating environment directory of the target computer. A source computer is unlikely to have permission to write a transport file to a target computer.
At the target computer, change the directory to the location to which the transport file will be copied. The following example shows the FTP commands that are used to get the transport files.
FTP Dialog for File Transfer hp> ftp ax7000.vms.sas.com 1 Connected to ax7000.vms.com. 220 ax7000.vms.com MultiNet FTP Server Process V4.0(15) at Thu-Sep 30-99 12:59PM-EDT Name (ax7000.vms.com:): joe 331 User name (joe) ok. Password, please. Password: 230 User JOE logged into HOSTVAX:[JOE] at Thu 30-Sep-99 12:59PM-EDT, job 27a34cef. Remote system type is VMS. ftp> cd [.xpttest] 2 250 Connected to system-specific file/pathname. ftp> binary 3 200 Type I ok. ftp> get xptds.dat xptds.dat 4 200 Port 14.83 at Host 10.26.2.45 accepted. 150 IMAGE retrieve of system-specific file/pathname XPTDS.DAT;1 started. 226 Transfer completed. 1360 (8) bytes transferred. 5 1360 bytes received in 0.02 seconds (87.59 Kbytes/s) ftp> get xptlib.dat xptlib.dat 6 200 Port 14.84 at Host 10.26.2.45 accepted. 150 IMAGE retrieve of system-specific file/pathname XPTLIB.DAT;1 started. 226 Transfer completed. 3120 (8) bytes transferred. 7 3120 bytes received in 0.04 seconds (85.81 Kbytes/s) ftp> quit 8
From the UNIX target computer, the user invokes FTP to connect to the OpenVMS source operating environment AX7000.VMS.SAS.COM. | |
After a connection is established, at the FTP prompt, user JOE changes to the subdirectory on the source computer that contains the transport files. | |
The transport file attribute BINARY indicates that the OpenVMS transport file should be transferred from the source computer in BINARY format. | |
The FTP get command obtains the transport file named XPTDS.DAT from the source computer and copies it to a new file that has the same name, XPTDS.DAT, in the current directory of the target operating environment that runs on the target computer. | |
Messages indicate that the transfer was successful and that the size of the transport file was 1360 bytes. Compare the sizes of the transport files at the source computer and the target computer. If the sizes are identical, then the network successfully transferred the file. For details about listing file size, see Verifying the Size of a Transport File. | |
The FTP get command obtains another transport file named XPTLIB.DAT from the source computer and copies it to a new file that has the same name, XPTLIB.DAT, in the current directory of the target operating environment on the target computer. | |
Messages indicate that the transfer was successful. Compare the sizes of the transport files at the source computer and the target operating environment. | |
For complete details about using the file transfer utility, see your FTP documentation.
Using PROC COPY at the Target Computer to Restore Transport Files into Native Format |
The following example shows a SAS program that translates a transport file to native file format.
SAS Program That Restores Transport Files into Native File Format libname xptlib xport 'xptlib.dat'; 1 libname xptds xport 'xptds.dat'; 2 libname natvlib v7 'natvlib' 3 libname natvds v7 'natvds'; 4 /* translate transport file for library */ /* to native format on target computer. */ proc copy in=xptlib out=natvlib; 5 run; /* translate transport file for data set*/ /* to native format on target computer */ proc copy in=xptds out=natvds; 6 select grades; run;
Viewing the SAS Log at the Target Computer |
This example shows a SAS log that documents the successful execution of the SAS program shown in SAS Program That Restores Transport Files into Native File Format.
SAS Log at the Target Computer NOTE: Copyright (c) 1999 by SAS Institute Inc., Cary, NC, USA. NOTE: SAS (r) Proprietary Software Version 8 (TS00.00P1D090398) 1 Licensed to SAS Institute Inc., Site 0000000001. NOTE: This session is executing on the UNIX B.10.20 platform. 2 NOTE: Running on HP Model 9000/715 Serial Number 2005516582. libname xptlib xport 'xptlib.dat'; 3 NOTE: Libref XPTLIB was successfully assigned as follows: Engine: XPORT Physical Name: system-specific file/pathname/xptlib.dat libname xptds xport 'xptds.dat'; 4 NOTE: Libref XPTDS was successfully assigned as follows: Engine: XPORT Physical Name: system-specific file/pathname/xptds.dat libname natvlib v7 'natvlib'; 5 NOTE: Libref NATVLIB was successfully assigned as follows: Engine: V7 Physical Name: system-specific file/pathname/natvlib libname natvds v7 'natvds'; 6 NOTE: Libref NATVDS was successfully assigned as follows: Engine: V7 Physical Name: system-specific file/pathname/natvds /* translate transport file for library to native */ /* format on target computer. */ proc copy in=xptlib out=natvlib; run; NOTE: Input library XPTLIB is sequential. NOTE: Copying XPTLIB.GRADES to NATVLIB.GRADES (memtype=DATA). 7 NOTE: BUFSIZE is not cloned when copying across different engines. System Option for BUFSIZE was used. NOTE: The data set NATVLIB.GRADES has 2 observations and 4 variables. NOTE: Copying XPTLIB.NUMBERS to NATVLIB.NUMBERS (memtype=DATA). 8 NOTE: BUFSIZE is not cloned when copying across different engines. System Option for BUFSIZE was used. NOTE: The data set NATVLIB.NUMBERS has 10 observations and 1 variables. NOTE: Copying XPTLIB.SIMPLE to NATVLIB.SIMPLE (memtype=DATA). 9 NOTE: BUFSIZE is not cloned when copying across different engines. System Option for BUFSIZE was used. NOTE: The data set NATVLIB.SIMPLE has 1 observations and 3 variables. /* translate transport file for data set to native */ /* on target computer */ proc copy in=xptds out=natvds; select grades; run; NOTE: Input library XPTDS is sequential. NOTE: Copying XPTDS.GRADES to NATVDS.GRADES (memtype=DATA). 10 NOTE: BUFSIZE is not cloned when copying across different engines. System Option for BUFSIZE was used. NOTE: The data set NATVDS.GRADES has 2 observations and 4 variables
Copyright © 2009 by SAS Institute Inc., Cary, NC, USA. All rights reserved.