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

Use a Windows share in a Libname statement with SAS

当运行在本地通过 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

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

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

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

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

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

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

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

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

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

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

感谢@Tom 的建议。