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

在SAS的Libname语句中使用Windows共享,sas,enterprise-guide,Sas,Enterprise Guide,通过EGuide在本地运行SAS时,我可以成功声明一个libname,如下所示: libname winlib '\\pc\folder\'; 当使用SAS服务器时,这是不可能的,我必须求助于使用复制文件任务 利息: 我相信这是因为SAS服务器是Unix,对吗 我所尝试的: libname测试'//pc/文件夹//' libname test2'smb://pc/folder/" 我能想到的其他选择是将驱动器安装到SAS服务器,这对我来说是不可行的,因为这是针对特殊情况的 问题是: 如何将li

通过EGuide在本地运行SAS时,我可以成功声明一个libname,如下所示:

libname winlib '\\pc\folder\';
当使用SAS服务器时,这是不可能的,我必须求助于使用复制文件任务

利息: 我相信这是因为SAS服务器是Unix,对吗

我所尝试的: libname测试'//pc/文件夹//' libname test2'smb://pc/folder/"

我能想到的其他选择是将驱动器安装到SAS服务器,这对我来说是不可行的,因为这是针对特殊情况的

问题是: 如何将libname正确声明为SAS服务器的\\pc\文件夹

请注意:
我无法在本地运行,因为我必须连接到几个数据库,并且我不想为此使用PROC上载或下载。

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

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

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


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

不幸的是,在Unix环境中,没有办法直接使用libname语句中的远程路径来实现这一点

您应该能够使用Windows SAS服务器执行此操作,也可以使用本地Windows SAS服务器执行此操作

这是由于Unix的工作方式,这意味着必须装载共享

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

也就是说,也可以执行以下操作之一:

将数据写入服务器本地目录,甚至是工作或家庭目录。然后将数据复制到本地目录。例如,使用《企业指南》中的“复制文件”任务,或者如果您可以从本地PC访问该位置,则手动复制这些文件 在本地进行SAS处理,并通过网络获取所需数据如果需要DB访问,这是不可行的,而在本地服务器上则无法实现 让负责SAS服务器的人设置一个可从您的计算机和SAS服务器访问的装载。 使用SAS PC文件服务器为M$office文件完成此操作。 在本地计算机上设置FTP服务器,并使用带有FTP选项的文件名对其进行读/写操作。看看有什么想法。
感谢@Tom的建议。

谢谢,因为我使用的是“复制文件”任务,所以我并不认为您提到的方法有什么好处,因为它们基本上实现了相同的功能。这些都需要写入SAS本地目录,然后将它们拉过来,除了上面提到的挂载共享。无法从SAS进程直接访问共享。这可能是半个Unix问题……对。答案是修复您的网络基础结构,以便您可以从正在使用的计算机中查看所需的文件。实际上,您可以通过在PC上安装SAS PC files server来做到这一点?不确定是否可以共享基本引擎,但您可以通过这种方式引用Excel文件。或者,如果您有许可证,请在您的电脑上安装SAS/Share,并将您的Unix libref连接到该许可证。看来,SAS PC文件服务器和SAS/Share将是一个不错的选择。我正在做更多的研究。是的,有windows SAS服务器。这是因为服务器不知道\\pc\指的是什么。网络共享必须是唯一的,因此显然不是每个人都可以使用\\pc\或者服务器会感到困惑。如果你有电脑的管理员权限,你可以在电脑上设置网络共享,但我通常不推荐。相反,在服务器上设置网络共享要容易得多。@david25272上面的目录是指在Windows PC上访问共享。问题是我可能在服务器上有一个专用共享,我无法想象,如果数千个访问服务器的人都有自己的共享目录。