如何将libname分配给SAS中的WORK数据库?

时间:2015-06-25 13:02:25

标签: sas enterprise-guide

我们有一个企业指南项目,我们有多个流程。 每个流程的输出都保存到名为“SAVE”的特定库中,使用LIBNAME语句定义。这样做是为了让我们可以更轻松地跳转并处理任何流程,而无需运行所有上述流程(当然除了使用LIBNAME语句初始化SAVE库的流程流程)。

但是,当我们想在PRODUCTION服务器上运行此代码时,我们希望此SAVE库指向SAS WORK数据库,因为我们不需要这些中间数据。

是否可以使用LIBNAME语句(例如“LIBNAME SAVE SAS.WORK;”)将库指向WORK数据库?

3 个答案:

答案 0 :(得分:3)

定义libref使用LIBNAME语句。要查找现有libref使用的路径,请使用PATHNAME()函数。

libname save %sysfunc(quote(%sysfunc(pathname(work)))) ;

小心使用此技巧,因为SAVE.memname和WORK.memname现在将引用相同的物理文件。由于名称冲突,在您的开发环境中工作的代码可能不起作用。

答案 1 :(得分:2)

好的,我找到了办法。

%let workLocation=%sysfunc(getoption(work));
libname SAVE "&workLocation.";

甚至有更简单的解决方案:

libname SAVE (work);

答案 2 :(得分:1)

您可以做的一件事是重新分配WORK库,使其指向您的SAVE库所在的位置。

此处,在第1点,他们解释了如何执行此操作:https://riskopedia.wordpress.com/2007/03/06/reassign-location-on-sas-work-folder/