2017-03-24 16 views
0

私はあまり技術的ではありませんので、問題を説明しようとしています。 Unixサーバ上でSASプログラムを開始する日々の仕事があります。プログラムはデータを分析し、CSVファイルを吐き出してサーバーに保存し、その後私に電子メールで送ります。私は手動で電子メールからファイルをダウンロードし、ファイルを処理するユーティリティにアップロードします。私は手作業の手順を迂回する方法を探していますが、代わりにSASプログラムがファイル処理ユーティリティ用のサーバー上のフォルダに直接CSVファイルをアップロードするようにしています。SASを使用してCSVファイルを別のサーバに移動

SASが接続されているサーバー(/user/folder/file.csv)にcsvファイルが格納されている場合、このファイルを別のサーバー(/ inbox)の別のサーバー(server2.test .com)?ここで

私がこれまで持っているものですが、私は、ファイルをフォルダにそれを作っていないので、私は何かが足りないと思う:

proc import file="/user/folder/file.csv"  
      dbms=csv out=file1 replace;  
run; 

filename outdir ftp "/inbox" DIR 
        host="server2.test.com" 
        user="username" pass="pwd"; 

data _null_; 
    file outdir(file1); 
    put file1; 
run; 

ありがとう!

マイク

答えて

0

あなたは近くです。 CSVファイルを読み込むためのファイル名と、FTPサーバーに書き込むためのファイル名を定義します。

filename in "/user/folder/file.csv"; 
filename outdir ftp "/inbox" DIR 
       host="server2.test.com" 
       user="username" pass="pwd" 
; 

ファイルをコピーします。

data _null_; 
    infile in; 
    file outdir("file.csv"); 
    input; 
    put _infile_; 
run; 
+0

ありがとう。プログラムを実行してもエラーは発生しませんでしたが、Filezillaでサーバーに接続すると、受信トレイフォルダにファイルが保存されていません。それがうまくいかない理由は何ですか? – mrfreda

+0

データステップのメモには、読み書きの行数が表示されます。 FileZillaを使用してそのサーバー上にそのようなファイルを作成できますか?おそらく、あなたが書く許可を持っていない場所に書き込もうとしています。あなたの例のように 'FILE'文の構文を引用符なしで使用した場合、SASは書いたファイルに' .dat'拡張を追加しているかもしれません。 – Tom

+0

ノートには、レコードが正常に読み書きされたと記載されています。 注記:infile INから5レコードが読み込まれました。 最小レコード長は34です。 最大レコード長は106です。 注:合計5レコードがファイルライブラリOUTDIRに書き込まれました。 最小レコード長は34です。 最大レコード長は106です。 注:5レコードがファイルOUTDIR( "file.csv")に書き込まれました。 最小レコード長は34です。 最大レコード長は106です。 – mrfreda

関連する問題