我正在尝试通过Citrix环境在SAS Enterprise Guide 6.1中使用PROC EXPORT将数据集发送到Excel,但似乎存在文件路径问题。
我的代码如下:
proc export data = work.Test
outfile = '\\servername\path\Test.xls'
dbms = xls replace;
sheet = "Test";
run;
我收到的错误消息是"错误:没有足够的授权来访问/sasconfig/compute/ciapp/Lev1/CIApp/\servername\path\Test.xls。"
我提供的路径被附加到我尚未定义的另一条路径。请注意,服务器名称不是别名,例如" C:",它实际上是服务器的路径,但我已将其删除以保密。
如果我将该行更改为:
outfile = 'H:/Test.xls'
错误消息是"错误:物理文件不存在,/ sasconfig /compute / asiapp / Lev1 / CIApp / H:/ Test.xls"
但如果我将该行更改为:
outfile = '/Test.xls'
错误消息是"错误:访问/Test.xls的授权不足。"
我认为我从根本上不了解SAS尝试使用的文件路径。我做错了什么/如何确定实际导出Excel文件的路径?
答案 0 :(得分:1)
Citrix可能使用UNIX样式路径而不是Windows样式路径。因此,您可以使用\\servername\path
代替//servername/path
。如果您的SAS服务器已定义h:\
(不是EG位置 - 必须是sas.exe实际运行的位置),h:/
也可能是正确的(但不是h:\
)。
答案 1 :(得分:1)
SAS EG是一个在服务器上工作的界面。如果您的数据驻留在服务器上,则需要找到计算机C驱动器的完整网络路径。否则,您可以将EG中的服务器更改为“本地”并在本地运行所有内容,以便将路径识别为本地。
因此,如果您有共享驱动器用户(通常不是C :),您可以读取/写入,则可以使用该共享驱动器上的文件夹属性来检索完整路径并使用该路径进行导出。同样,您应该能够打开网络,在那里找到您的PC的网络名称,并使用相对路径,如\ sharedservername \ users \ yourusername \ subfolder \ path \作为导出路径。
您还可以查看SAS EG的导出向导的自动生成的代码,以便虚拟导出到您的路径并重用该代码。它可能会为您检索并编写适当的完整路径。