【问题标题】:Moving CSV file to different server using SAS使用 SAS 将 CSV 文件移动到不同的服务器
【发布时间】:2017-08-17 13:30:38
【问题描述】:

我不是很专业,所以在我尝试解释问题时请多多包涵。我们有一个每日计划的工作,它在 Unix 服务器上启动一个 SAS 程序。该程序分析数据并输出一个 CSV 文件,该文件存储在服务器上,然后通过电子邮件发送给我。然后我从电子邮件中手动下载文件并将其上传到实用程序以处理文件。我正在寻找一种绕过手动步骤的方法,而是让 SAS 程序将 CSV 文件直接上传到服务器上的文件夹以供文件处理实用程序使用。

因此,鉴于 csv 文件存储在 SAS 连接到的服务器 (/user/folder/file.csv) 上,我如何将此文件传输到另一台服务器 (server2.test.txt) 上的另一个文件夹 (/inbox)。 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;

谢谢!

迈克

【问题讨论】:

    标签: csv sas


    【解决方案1】:

    你很接近。我会定义一个文件名用于读取 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;
    

    【讨论】:

    • 谢谢汤姆。我运行了程序,它没有任何错误,但是当我使用 Filezilla 连接到服务器时,我没有看到收件箱文件夹中存储的文件。知道为什么它不起作用吗?
    • 数据步骤中的注释应该显示读取和写入的行数。您可以使用 FileZilla 在该服务器上创建这样的文件吗?也许你正试图写到一个你没有写权限的地方。此外,如果您使用 FILE 语句的语法(如示例中没有引号),那么 SAS 可能在它编写的文件中添加了 .dat 扩展名。
    • 注释说记录读写成功: 注意:从infile IN中读取了5条记录。最小记录长度为 34。最大记录长度为 106。 注意:共有 5 条记录写入文件库 OUTDIR。最小记录长度为 34。最大记录长度为 106。注意:5 条记录被写入文件 OUTDIR("file.csv")。最小记录长度为 34。最大记录长度为 106。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2020-03-04
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多