我无法理解为什么我无法在通话中呼叫宏rsubmit.
例如,我有代码:
%let var= year;
%put &var; /* this works fine and prints "year" to the log */
rsubmit;
proc sql;
%put &var; /* this does not work */
Run Code Online (Sandbox Code Playgroud)
第二个实例抛出警告WARNING: Apparent symbolic reference VAR not resolved. 为什么我不能在rsubmit代码中引用宏,我怎么能适应这个?
作为参考,如果我在rsubmit中移动宏的创建它可以正常工作 - 例如:
rsubmit;
proc sql;
%let var= year;
%put &var; /* prints "year" as expected */
Run Code Online (Sandbox Code Playgroud)
但是,我希望在我的代码开头分配宏 - 并且还希望了解为什么以前不能工作.
小智 5
这是因为你是在本地而不是在远程系统上定义它们,它们是分开存放的.如果要在本地运行时创建/更新远程值,反之亦然,则可以分别使用%syslput和%sysrput语句. http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a001221974.htm