宏引用调用执行中的执行

时间:2017-08-18 03:05:40

标签: sas

SAS文档说,调用execute中的宏引用会立即执行。这段代码是否例证了它?

 %let var = abc;

 data _null_;
   call execute ('&var');
 run;

1 个答案:

答案 0 :(得分:2)

排序。这是一个更完整的示例,它使用宏变量的值,它是实际的可执行SAS代码。

data _null_;
  call symputx('var','data;run;');
run;

%put var= %superq(var);

data _null_;
  call execute ('&var');
run;

您可以在SAS日志中看到CALL EXECUTE()实际推送到堆栈上运行的代码是宏变量的值,即使单引号会阻止宏变量在数据_null_步骤期间扩展正在使用CALL EXECUTE()语句。

NOTE: CALL EXECUTE generated line.
1    + data;run;