如何将 libname 分配给 SAS 中的 WORK 数据库?
How can I assign libname to WORK Data Library in SAS?
我们有一个企业指南项目,其中有多个流程。
每个流程的输出都保存到名为 "SAVE" 的特定库中,该库使用 LIBNAME 语句定义。这样做是为了让我们可以更轻松地跳转并处理任何流程,而无需 运行 所有上述流程(当然,将使用 LIBNAME 语句初始化 SAVE 库的流程除外)。
但是,当我们想要 运行 生产服务器上的此代码时,我们希望此 SAVE 库指向 SAS WORK 数据库,因为我们不需要此中间数据。
是否可以使用 LIBNAME 语句(例如 "LIBNAME SAVE SAS.WORK;")将图书馆定向到 WORK 数据库?
好的,我找到了方法。
%let workLocation=%sysfunc(getoption(work));
libname SAVE "&workLocation.";
还有更简单的解决方案:
libname SAVE (work);
您可以做的一件事是重新分配 WORK 库,使其指向您的 SAVE 库所在的位置。
在这里,在第 1 点中,他们解释了如何做到这一点:https://riskopedia.wordpress.com/2007/03/06/reassign-location-on-sas-work-folder/
使用 LIBNAME 语句定义库引用。要查找现有库引用使用的路径,请使用 PATHNAME() 函数。
libname save %sysfunc(quote(%sysfunc(pathname(work)))) ;
请小心使用此技巧,因为 SAVE.memname 和 WORK.memname 现在将引用同一个物理文件。由于名称冲突,在您的开发环境中工作的代码可能无法工作。
我们有一个企业指南项目,其中有多个流程。 每个流程的输出都保存到名为 "SAVE" 的特定库中,该库使用 LIBNAME 语句定义。这样做是为了让我们可以更轻松地跳转并处理任何流程,而无需 运行 所有上述流程(当然,将使用 LIBNAME 语句初始化 SAVE 库的流程除外)。
但是,当我们想要 运行 生产服务器上的此代码时,我们希望此 SAVE 库指向 SAS WORK 数据库,因为我们不需要此中间数据。
是否可以使用 LIBNAME 语句(例如 "LIBNAME SAVE SAS.WORK;")将图书馆定向到 WORK 数据库?
好的,我找到了方法。
%let workLocation=%sysfunc(getoption(work));
libname SAVE "&workLocation.";
还有更简单的解决方案:
libname SAVE (work);
您可以做的一件事是重新分配 WORK 库,使其指向您的 SAVE 库所在的位置。
在这里,在第 1 点中,他们解释了如何做到这一点:https://riskopedia.wordpress.com/2007/03/06/reassign-location-on-sas-work-folder/
使用 LIBNAME 语句定义库引用。要查找现有库引用使用的路径,请使用 PATHNAME() 函数。
libname save %sysfunc(quote(%sysfunc(pathname(work)))) ;
请小心使用此技巧,因为 SAVE.memname 和 WORK.memname 现在将引用同一个物理文件。由于名称冲突,在您的开发环境中工作的代码可能无法工作。