SAS:在FILENAME SFTP fileref上进行PROC导入

时间:2014-06-27 20:31:45

标签: sas

在SAS(9.4,如果重要)中,我想通过SFTP从远程主机获取CSV文件,解析CSV,并将结果放入SAS数据表。

我使用PuTTY设置SFTP,如SAS文档中所述。将fileref绑定到SFTP可以正常工作,例如:

FILENAME mysftpfileref SFTP 'location/on/host/file.csv' HOST='myhost' USER='mysuser';
DATA _null_;
    INFILE mysftpfileref TRUNCOVER;
    INPUT a $25.;
RUN;

将成功读取数据。

但是,我似乎无法使用PROC IMPORT来实际解析数据。该proc状态的文档

  

" IMPORT过程不支持设备类型或访问方法   对于除DISK之外的FILENAME语句。例如,IMPORT   过程不支持TEMP设备类型,这会创建一个   临时外部文件。"

有解决方法吗?

1 个答案:

答案 0 :(得分:2)

您需要:

  • 自行编写导入代码(使用数据步骤)
  • 以某种方式下载文件,然后在下载的文件
  • 上运行PROC IMPORT

如果您选择第二个选项,则可以通过以下几种方式执行此操作。最简单的可能是编写类似于上面的数据步骤,读取整行或使用_INFILE_自动变量,然后在本地写出来。沿着这些方向的东西(定义这些文件名或当然改变它们):

data _null_;
 infile Sftpfile;
 file localf;
 input @;
 put _infile_;
run;