在SAS的Libname语句中使用Windows共享

时间:2017-09-05 13:42:25

标签: sas enterprise-guide

当通过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 UPLOADDOWNLOAD

2 个答案:

答案 0 :(得分:1)

如果您希望SAS读取目录,则SAS进程需要能够查看该目录。

大多数公司所做的是创建一个可以由SAS机器和PC安装的共享目录,然后您可以直接从两者引用文件,只需使用不同的路径。

否则,如果您希望SAS使用EG可以看到的文件但SAS不能,那么我建议请求EG上传文件。 EG可以使用自定义任务上传二进制文件。

另一种方法是创建SAS代码以连接到可以查看文件并将文件拉过来的计算机。也许使用FTP或SFTP协议。

答案 1 :(得分:0)

不幸的是,没有办法以我希望的方式(在Unix环境中直接使用libname语句中的远程路径)。

您应该可以使用Windows SAS服务器执行此操作,并且可以使用本地Windows SAS服务器执行此操作。

这是由于Unix如何工作,这意味着必须安装共享。

作为临时方法,这是不可行的 我希望Unix有更直接的方式来访问远程目录。

话虽如此,或者可以做以下其中一种:

  • 将数据写入服务器本地目录,甚至工作或家庭。然后将数据复制到本地目录。 (例如,使用“企业指南”中的“复制文件”任务,或者如果您可以从本地PC访问该位置,则手动复制它们)
  • 在本地进行SAS处理并通过网络获取所需的数据(如果您需要数据库访问,这是不可行的,这在本地服务器上无法完成)。
  • 让负责SAS服务器的人设置一个可从您的计算机和SAS服务器访问的挂载。
  • 使用SAS PC文件服务器为M $ office文件完成此操作。
  • 在本地计算机上设置FTP服务器,并使用filenameFTP选项对其进行读/写操作。请参阅How do I read raw data via FTP in SAS?了解相关信息。

感谢@Tom的建议。