【发布时间】:2015-02-09 17:14:47
【问题描述】:
SAS v9.4 文档列出了一个自动宏变量 &sysodsescapechar,其中包含使用 ods escapechar= 分配的当前 ODS 转义字符。
每当我尝试使用 %put 语句查看宏变量时,都会收到以下错误:
ERROR: Open code statement recursion detected.
当打开代码错误地导致宏语句调用另一个宏语句时会发生这种情况。
我已经尝试了以下所有方法:
%put &=sysodsescapechar.;
%put %nrbquote(&sysodsescapechar.);
%put %superq(sysodsescapechar);
它们都会导致相同的错误。
当我尝试使用数据步骤查看宏变量时,它似乎为空。
data test;
esc = "&sysodsescapechar.";
put esc=;
run;
如果宏变量实际上是空的,为什么会出现开放代码语句递归错误? %put 语句本身是有效的,因此放置一个空变量应该不是问题。
我们将不胜感激。
【问题讨论】: