PROC EXPORT
Joe が言うように、 FTP を使用して転送するファイルを作成するために使用することはありません。SAS データセットを交換する最も安全な方法は、 を使用PROC CPORT
して移送ファイルを作成することです。元のマクロの修正版は次のとおりです。
%macro export_to_ftp(dsn= ,outfile_name= );
%let DBMS=%UPCASE(%SCAN(&outfile_name.,2,.));
%if &DBMS ne CSV and &DBMS ne TXT and &DBMS ne CPT %then %do;
%put &DBMS is not supported.;
%goto getout;
%end;
%if &DBMS=CPT %then %do;
filename MyFTP ftp "&outfile_name."
HOST='ftp.site.com'
cd= "&DATA_STRM/QC"
USER=&ftp_user.
PASS=&ftp_pass.
rcmd='binary';
PROC CPORT DATA= &dsn.
FILE = MyFTP;
RUN;
%end;
%else %do;
filename MyFTP ftp "&outfile_name."
HOST='ftp.site.com'
cd= "&DATA_STRM/QC"
USER=&ftp_user.
PASS=&ftp_pass.
rcmd='ascii';
PROC EXPORT DATA= &dsn.
OUTFILE= MyFTP
DBMS= &dbms REPLACE;
RUN;
%end;
filename MyFTP clear;
%getout:
%mend;
%export_to_ftp(dsn=lib1.dataset ,outfile_name=dataset.csv);
%export_to_ftp(dsn=lib1.dataset ,outfile_name=dataset.cpt);
慣例により、これはファイル拡張子 を使用してcpt
、SAS トランスポート ファイルを作成することを識別します。ファイルを受け取った人は誰でも、ファイルをPROC CIMPORT
SAS データセットに戻すために使用します。
filename xpt 'path-to-transport-file';
proc cimport data=dataset infile=xpt;
run;
filename xpt clear;
SAS 転送ファイルはバイナリ ファイルとして転送する必要があることに注意してください。他の 2 つの形式はテキスト ファイルです。したがって、異なるfilename
ステートメント。
を使用する多くの利点の 1 つは、PROC CPORT
存在する可能性のあるインデックスを含め、データ セット全体がコピーされることです。また、データ セットを作成したオペレーティング システムとは異なるオペレーティング システムでデータ セットを使用することに関連する問題からも保護されます。