Macros SAS包括动态路径

Macros SAS包括动态路径,macros,sas,execute,Macros,Sas,Execute,我试着建立一个小宏,它在循环中应该运行其他SAS程序。 表控制_文件有两个字段,其中是正确sas程序路径的其他部分 %LET PATH_TO = '%include "T:\XXX\YYY\ZZZ\'; %LET PATH_end = '.sas"'; data _null_; set CONTROL_FILES; call execute ('%runlimitsquery('||&PATH_TO||SCHEMA_NAME||'\'||PROCES_NAME||&PATH_en

我试着建立一个小宏,它在循环中应该运行其他SAS程序。 表控制_文件有两个字段,其中是正确sas程序路径的其他部分

%LET PATH_TO = '%include "T:\XXX\YYY\ZZZ\';
%LET PATH_end = '.sas"';
data _null_;
set CONTROL_FILES;
call execute ('%runlimitsquery('||&PATH_TO||SCHEMA_NAME||'\'||PROCES_NAME||&PATH_end||');');
run;
我试着用runlimitsquery因为我在某个地方找到了这个提示。。 运行代码时,日志将返回:

NOTE: CALL EXECUTE generated line.
NOTE: Line generated by the CALL EXECUTE routine.
1         + %runlimitsquery(%include "T:\XXX\YYY\ZZZ\XXX_TECHNICAL_AAAAA\001_AAAAA.sas");
            _
            180
WARNING: Apparent invocation of macro RUNLIMITSQUERY not resolved.

ERROR 180-322: Statement is not valid or it is used out of proper order

有人能帮我吗?

好的,我有问题的答案。。。 以下代码工作:

%LET PATH_TO = '%include "T:\XXX\YYY\ZZZ\';
%LET PATH_end = '.sas"';
data _null_;
set CONTROL_FILES;
call execute ('('||&PATH_TO.||SCHEMA_NAME||'\'||PROCES_NAME||&PATH_end.||';');
run;

首先在变量中构建字符串,确保正确创建该字符串,然后将其传递给调用execute。这通常是错误所在。还要确保首先编译宏,这似乎是问题的一部分。
%runlimitsquery
是自动sas宏吗?如果没有,则必须明确定义它。否则,直接的
%include
应该就是您所需要的了。是的,当我删除
%runlimitsquery
时,它开始工作了