当通过EGuide在本地运行SAS时,我可以成功声明一个libname,如下所示:
libname winlib '\\pc\folder\';
使用SAS服务器时,这是不可能的,我不得不使用Copy Files
任务。
感兴趣:
我相信这是因为SAS服务器是Unix,这是正确的吗?
我尝试了什么:
libname test '//pc/folder/'
libname test2 'smb://pc/folder/'
我能想到的其他选项是将驱动器安装到SAS服务器上,这对我来说不可行,因为这适用于特殊情况。
问题:
我如何正确地为SAS服务器声明libname
到\\pc\folder
?
一些注释:
我无法在本地运行,因为我必须连接到几个数据库,我不想使用PROC UPLOAD
或DOWNLOAD
。
答案 0 :(得分:1)
如果您希望SAS读取目录,则SAS进程需要能够查看该目录。
大多数公司所做的是创建一个可以由SAS机器和PC安装的共享目录,然后您可以直接从两者引用文件,只需使用不同的路径。
否则,如果您希望SAS使用EG可以看到的文件但SAS不能,那么我建议请求EG上传文件。 EG可以使用自定义任务上传二进制文件。
另一种方法是创建SAS代码以连接到可以查看文件并将文件拉过来的计算机。也许使用FTP或SFTP协议。
答案 1 :(得分:0)
不幸的是,没有办法以我希望的方式(在Unix环境中直接使用libname
语句中的远程路径)。
您应该可以使用Windows SAS服务器执行此操作,并且可以使用本地Windows SAS服务器执行此操作。
这是由于Unix如何工作,这意味着必须安装共享。
作为临时方法,这是不可行的 我希望Unix有更直接的方式来访问远程目录。
话虽如此,或者可以做以下其中一种:
filename
和FTP
选项对其进行读/写操作。请参阅How do I read raw data via FTP in SAS?了解相关信息。感谢@Tom的建议。