2016-09-19 84 views
0

我是SAS中的新手,来自SQL,所以我正在处理它们之间的差异。使用%运行SAS脚本包括

我有一个运行,除其他事物的SAS程序“Master.sas”,这样的事情:

%include "c:\script1.sas"; 
%include "c:\script2.sas"; 
%include "c:\script3.sas"; 

的问题是,如果我选择所有这些并运行它,它顺序运行或平行? 例如,如果script2使用在script1中加载的表,它将无法成功运行吗? 那么,这个例子听起来可能听起来很明显,但是如果script1计算一个变量,script2将会计算变量或使用它在运行时发现的内容会发生什么(因为,例如,script2之前运行的比script1)? 为了澄清,我需要SAS依次运行它们,一个接一个。

在SQL存在“走出去”单独批量处理,即:

CREATE TABLE XXXXX 
GO 

SELECT * FROM XXXXX 
GO 

如果有人试图运行脚本出去,SQL运行它们在第二个脚本并行产生的错误,告诉“表XXXXX不存在“。

当SAS或SAS需要类似的东西时,只需在前一个完成时再处理?

在此先感谢!

+0

这些文件将按顺序运行。 1; 2; 3。这里是细节,如果你不想并行:https://communities.sas.com/t5/Base-SAS-Programming/running-Proc-Sql-jobs-in-parallel-and-in-sequence/ TD-p/147498 – sb0709

回答

1

%include将按顺序运行。 SAS将运行第一%include,如果它只是在行代码,然后打第二个,做同样的,等

SAS中的等价物GORUN,靠了靠,但在大多数情况下RUN不实际上必须包括在内(尽管这被认为是一种好的做法)。 SAS不会仅仅因为您没有运行而以并行模式运行,但它告诉SAS继续并运行提供的代码。不过不是适用于PROC SQL,但是;不支持运行组处理,并立即执行由;终止的每条语句。

有办法让它平行运行;例如,this hands-on workshop from SUGI 29 on Parallel Processing显示了如何使用RSUBMIT来执行此操作。企业指南“允许并行处理程序(但在一个程序中不包含%include),如果您告诉它(但不是默认情况下)。