【发布时间】:2016-03-02 10:13:18
【问题描述】:
我在 SAS 中的任务是通过 SFTP 上传一个扩展名为 tmp 的文件,并在上传完成后将其重命名为 csv。由于我不是服务器的管理员,因此我的调试输出是有限的,并且我正在为正确的实现而苦苦挣扎。以下代码不会在 SAS 日志中生成错误,但不会重命名文件:
%let host=...;
%let sftpUser = ...;
%let filename_tmp=20160301-test01-sas.tmp;
%let filename=20160301-test01-sas.csv;
%let sftpPath=...;
FILENAME test SFTP "&sftpPath.&filename_tmp."
HOST="&host."
USER="&sftpUser."
DEBUG;
proc export data=.... outfile=test dbms=csv replace;
run;
data _null_;
rc=rename("test&sftpPath.&filename_tmp.", "test&sftpPath.&filename.", 'file');
run;
我已经阅读了文件名和重命名的文档,但我不知道如何组合这两个语句 - 非常感谢任何帮助、提示或替代方法。
谢谢 斯蒂芬
【问题讨论】:
-
有什么原因不能在 sftp 之前在本地执行重命名?
-
你好弗洛伊顿,是的,确实有一个。在目标服务器上运行一个脚本,扫描 csv 文件并每分钟移动一次,因此存在在上传未完成时移动文件的危险。因此,我想将它们上传为 tmp 并在之后重命名。