【问题标题】:SAS Rename file on SFTPSFTP上的SAS重命名文件
【发布时间】: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 并在之后重命名。

标签: sas sftp


【解决方案1】:

目标服务器上正在运行一个脚本,扫描 csv 文件并每分钟移动一次,因此存在在上传未完成时移动文件的危险。

我很确定文件没有被移动的危险,因为它应该被锁定直到上传完成。试试看吧。

【讨论】:

  • 您好 Crna Krv,感谢您的反馈 - 我通过导出包含很多行的文件对其进行了测试,并且该文件在导出过程中被删除。因此我需要实现重命名版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多