我在SAS的任务是通过扩展名为tmp的SFTP上传文件,并在上传完成后将其重命名为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;
我已经阅读了文件名和重命名的文档,但我无法得到如何结合两种语句的线索 - 非常感谢任何帮助或提示或替代方案。
由于 斯蒂芬
答案 0 :(得分:0)
目标服务器上运行的脚本扫描csv文件并每分钟移动一次,因此在上传未完成时存在移动文件的危险。
我非常确定文件没有被移动的危险,因为它应该被锁定,直到上传完成。试试吧。