【问题标题】:SAS E Guide 5.1 creating additional '/' in file pathSAS E Guide 5.1 在文件路径中创建额外的“/”
【发布时间】:2015-08-17 17:58:04
【问题描述】:

背景故事:我正在尝试使用 SAS Enterprise Guide 5.1 导出文件。我已经成功完成了很长一段时间。我有大量的 SAS 程序每天运行都没有问题,但最近我注意到 SAS 在文件路径中添加了额外的斜杠 (/),然后声称路径错误。我的一个 SAS 程序每天都运行了几个月,根本没有被编辑,不知从哪里出现了这个问题!代码没有任何变化!

这是我最近一次导出尝试中遇到相同问题的日志:

     %PUT REPORTDATE = %sysfunc(intnx(day,%sysfunc(today()),-1),date7.);
     REPORTDATE = 16AUG15


     %LET FILE = filename_REPORTDATE..xlsx;



     PROC EXPORT
        DATA = finalData
        OUTFILE = "filepath/&FILE"
        DBMS = xlsx
        REPLACE;
        SHEET = "Sheet1";
     RUN;

     ERROR: Temporary file for XLSX file can not be created -> 
     /filepath//filename_REPORTDATE..$$1.  Make sure the path name is correct 
     and that you have write permission.

所以,路径不正确,我没有权限......因为它不存在那个额外的 /。

如果任何 SAS 向导可以对此有所了解,我将不胜感激!

编辑:“文件路径”不是宏,出于隐私原因,我只是删除了实际文件路径。它是一个写出的路径,“/foo/bar/&FILE”

【问题讨论】:

  • filepath是写出来的固定路径,还是宏变量?而且,您正在运行什么版本的 SAS(不是 EG 版本,而是基本 SAS 版本)?
  • 你确定文件路径存在吗? AFAIK SAS 将忽略路径名中的双 // 并导出到预期路径。
  • @Reeza 我知道在 Windows 中是这样,在 Unix/linux 中不确定。
  • 从 %put "/foo/bar/&file" 的日志中得到了什么; ?是否只有通过 EG 提交代码时才会出现此问题?只是proc导出有这个问题吗?您能否成功运行写入文本文件 /foo/bar/&file 的数据 null 步骤?
  • 我刚刚在 Unix 和 Windows 中测试过,额外的 / 不要阻止 SAS 导出数据集,它会忽略额外的 /。问题出在其他地方,访问问题、文件创建和打开问题或无效名称。

标签: sas


【解决方案1】:

我在我提到的两个问题上都找到了问题。

首先,主要问题:SAS 似乎对文件路径区分大小写。实际文件夹的名称中有大写字母。我将 SAS 指向相同的文件路径,但使用小写字母。我意识到鉴于我的问题,您可能看不到这一点,但为了保护隐私,我不得不删除实际的文件路径。

第二:我提到了一个运行了几个月的工作,突然出现了同样的问题。文件路径是固定的,但它定期生成的文件随着时间的推移已经增长到超过 200MB。我尝试将要导出到 xlsx 的相同数据导出到 csv,一切正常。

我不确定这是否是 SAS 众所周知的“事情”,文件路径是否区分大小写,或者不导出到 xlsx 以获得更大的文件。 (我发誓我过去曾导出过更大的文件!)。我倾向于说,虽然这似乎是用户错误,但 SAS 的错误似乎并没有为我指明解决问题的正确方向。

感谢大家的努力,不胜感激!

【讨论】:

  • *NIX 中的 SAS 在几个方面区分大小写(在 Windows 中不是问题)。正如您已经发现的那样,文件名就是其中之一。自动调用宏库是另一个(文件名的大小写、宏声明和宏调用必须全部匹配)。出于这个原因,始终保持小写的好习惯,那么您就不必考虑它了。
  • @RobertPenr​​idge 重新自动调用 *nix 中的宏,文件名必须小写。但宏声明和调用可以大小写混合,不必匹配。 @ Joshua,一般*NIX 文件路径、文件名和命令区分大小写,Windows 不区分。 SAS是否区分大小写并不是真正的问题。 SAS 依赖于操作系统。
猜你喜欢
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多