打破BASE SAS中不平衡报价条件的最佳技巧是什么?

时间:2020-03-06 14:28:45  来源:igfitidea点击:

作为基本的SAS程序员,我们会了解以下内容:

我们提交了SAS代码,其中包含不平衡的引号,因此,现在我们不仅具有未闭合的引号,而且还具有未闭合的注释,宏函数定义和缺少的运行;或者退出;陈述。

避免那些不平衡的报价困扰最佳技巧是什么?

解决方案

至于我自己,我通常在Google处获取" SAS不平衡报价",最后提交如下内容:

*); */; /*’*/ /*”*/; %mend;

...突破未封闭的注释,引号和宏函数。

是的,我相信官方的SAS文档会为我们提供自己建议的解决方案。

我们总是可以发出终止提交的语句命令,然后重新提交要运行的内容。

这是我用的那个。

;*';*";*/;quit;run;
 ODS _ALL_ CLOSE;
 QUIT; RUN;

只是想重申AFHood关于使用ODS _ALL_ CLOSE;语句的建议。这是要包括的关键。并确保每次使用ODS后都使用它。

企业指南3过去将以下行放在其自动生成的代码的顶部:

*';*";*/;run;

但是,要真正从各种不平衡的问题中"复位"的唯一方法是退出sas会话,并在重新提交代码之前平衡所有不平衡的问题。使用这种快速(便宜的)黑客无法解决根本原因。

顺便说一下,ods _all_ close;关闭所有ods目的地,包括默认的结果目的地。在交互式会话中,至少应根据文档,打开" ods results;"或者" ods results on"来再次打开它。但是当我在9.2上对其进行测试时,它不起作用,如下所示:

%put sysvlong=&sysvlong sysscpl=&sysscpl;
/* sysvlong=9.02.01M0P020508 sysscpl=X64_VSPRO */

ods _all_ close;
proc print data=sashelp.class;
run;
/* on log
WARNING: No output destinations active.
*/

ods results on;
proc print data=sashelp.class;
run;
/* on log
WARNING: No output destinations active.
*/