当工作是基本sas客户端时,如果用户意外忘记了一个parathesis,quote,分号或end-comment,有时会导致他们尝试运行的任何其他代码失败。如果我正在尝试帮助遇到其中一个错误的人,如何在不打开全新会话的情况下清除当前缓冲区并重新开始?
答案 0 :(得分:2)
我一直使用support.sas.com上记录的那个 http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a001302436.htm
*'; *"; *); */; %mend; run;
提交,直到您收到日志消息:
ERROR: No matching %MACRO statement for this %MEND statement.
答案 1 :(得分:1)
没有真正的最佳方式,因为它取决于太多的东西。据推测,用户将知道可能出现的问题,并可以使用该信息;例如,我们是否可能错过了某个导致我们被锁定在宏中的修补程序?
EG方法是最好的方法之一。在每个EG流程开始时(即,每次在程序或程序部分点击“运行”),它都会运行:
;*';*";*/;quit;run;
这:
EG不包含%mend;
,因为它会生成警告,但如果您不介意警告并希望捕获其中一个常见问题,则可以包含该警告。如果你确实包含它,那么把它放在前面 - 宏将无法正确处理那些悬挂的引号,你需要先确定它们。