【问题标题】:How can I disable automatic options statements in SAS University Edition?如何在 SAS University Edition 中禁用自动选项语句?
【发布时间】:2015-05-17 13:49:34
【问题描述】:

每当我在 SAS University Edition 中提交代码时,都会自动插入这样的语句并显示在日志中:

OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

是什么原因造成的,有没有办法禁用它?我什至不确定这些语句是否在做任何事情,因为所有相关内容仍然显示在日志中。

按照下面 Dwal 的建议,这里是所有额外生成的代码:

 1          OPTIONS NOSYNTAXCHECK;
 2          TITLE;
 3          FOOTNOTE;
 4          OPTIONS LOCALE=en_US DFLANG=LOCALE;
 5          DATA _NULL_;
 6          VALUE=GETOPTION("VALIDVARNAME");
 7          CALL SYMPUT("_WEBVVN", VALUE);
 8          RUN;

 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds


 9          OPTIONS VALIDVARNAME=V7;
 10         FILENAME _HTMLOUT TEMP;
 11         FILENAME _GSFNAME TEMP;
 12         FILENAME _DATAOUT TEMP;
 13         %LET SYSCC=0;
 14         %LET _CLIENTAPP=SAS Studio;
 15         %LET _CLIENTAPPVERSION=3.3;
 16         %LET _SASPROGRAMFILE = %BQUOTE();
 17         %LET _BASEURL = %BQUOTE(http://localhost:10080/SASStudio/);
 18         %LET _EXECENV=SASProgrammer;
 19         DATA _NULL_;
 20         CALL SYMPUT("GRAPHINIT","");
 21         CALL SYMPUT("GRAPHTERM","");
 22         RC=TSLVL('GEOCODE');
 23         _ERROR_=0;
 24         IF (RC^=' ') THEN DO;
 25         CALL SYMPUT("GRAPHINIT","GOPTIONS RESET=ALL GSFNAME=_GSFNAME;");
 26         CALL SYMPUT("GRAPHTERM","GOPTIONS NOACCESSIBLE;");
 27         END;
 28         RUN;

 NOTE: Argument 1 to function TSLVL('GEOCODE') at line 22 column 4 is invalid.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds


 29         DATA _NULL_;
 30         RC=SYSPROD("PRODNUM002");
 31         IF (RC^=1) THEN DO;
 32         CALL SYMPUT("GRAPHINIT","");
 33         CALL SYMPUT("GRAPHTERM","");
 34         END;
 35         RUN;

 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds


 36         %LET _DATAOUT_MIME_TYPE=;
 37         %LET _DATAOUT_NAME=;
 38         %LET _DATAOUT_TABLE=;
 39         %LET _DATAOUT_URL=;
 40         %SYMDEL _DATAOUT_MIME_TYPE _DATAOUT_NAME _DATAOUT_URL _DATAOUT_TABLE;
 41         %LET _SASWS_ = %BQUOTE(/folders/myfolders);
 42         %LET _SASWSTEMP_=%BQUOTE(/folders/myfolders/.images/c1930fcb-2ffb-4ae0-8bfe-624b39b851b9);
 43         ODS LISTING CLOSE;
 44         OPTIONS PRINTERPATH=PDF;
 45         ODS AUTONAVIGATE OFF;
 46         ODS GRAPHICS ON;
 47         ODS HTML5 (ID=WEB) DEVICE=PNG GPATH="&_SASWSTEMP_" ENCODING=utf8 FILE=_HTMLOUT (TITLE='Results: Program') STYLE=Htmlblue
 47       ! OPTIONS(BITMAP_MODE='INLINE' SVG_MODE='INLINE' CSS_PREFIX='.ods_c1930fcb-2ffb-4ae0-8bfe-624b39b851b9'
 47       ! BODY_ID='div_c1930fcb-2ffb-4ae0-8bfe-624b39b851b9' );
 NOTE: Writing HTML5(WEB) Body file: _HTMLOUT
 48         &GRAPHINIT;
 49         OPTIONS FIRSTOBS=1;
 50         OPTIONS OBS=MAX;
 51         OPTIONS DTRESET DATE NUMBER NOTES;
 52         OPTIONS NOSYNTAXCHECK;
 53         

我实际提交的部分:

 54         data _null_;
 55         put "Hello";
 56         run;

 Hello
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds

然后还有更多:

 57         
 58         OPTIONS NOSYNTAXCHECK;
 59         ODS HTML CLOSE;
 60         &GRAPHTERM; ;*';*";*/;RUN;QUIT;
 61         QUIT;RUN;
 62         OPTIONS VALIDVARNAME=&_WEBVVN;
 63         %SYMDEL _WEBVVN;
 64         ODS HTML5 (ID=WEB) CLOSE;
 65         
 66         FILENAME _GSFNAME;
 NOTE: Fileref _GSFNAME has been deassigned.
 67         DATA _NULL_;RUN;

 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds


 67       !                 OPTIONS NOTES STIMER SOURCE SYNTAXCHECK;
 68       

【问题讨论】:

  • 我无法告诉你它的用途或如何摆脱它。您还会注意到在您的代码之前和之后跳过了一堆行号。如果您转到“首选项”,并选中“在 SAS 日志中显示生成的代码”,它会将所有这些额外代码打印到日志中,并可能让您更好地了解其用途。
  • 感谢 - 已更新。如果您将此作为答案发布,我会接受。

标签: sas


【解决方案1】:

在 SAS 中有几个地方可以设置选项 - 下面的列表按优先顺序排列(即 #1 取代 #2 等):

  1. 受限选项表(如果存在)(如果您在大学服务器上,这些可能已设置)
  2. OPTIONS 语句(或 SAS 系统选项窗口)
  3. Autoexec 文件(包含 OPTIONS 语句)
  4. 命令行规范
  5. 配置文件规范
  6. SAS 系统默认设置。

您可以通过汇总以下内容来检查这些选项的实际值,这将输出所有系统选项及其当前值的列表:

proc options define ;
run ;

从你所说的,听起来日志仍在输出注释/源代码行是吗?如果您在日志中看到 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;,那么这只是一个猜测,但可能是该语句来自一个 autoexec 文件(#3),该文件随后被 unitversity 限制选项(#1)取代。

您可以通过查找AUTOEXEC 选项的值从上面的proc options 语句的输出中检查这一点,因为这将指定要提交的自动执行文件的路径(如果有的话)。

【讨论】:

  • 每次提交代码时(有时在代码中的多个点)都会插入额外的选项语句,而不是在会话启动时插入一次,所以我不认为 autoexec 是源.实际的自动执行文件似乎是空的。
猜你喜欢
  • 1970-01-01
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-12
  • 1970-01-01
  • 2020-10-16
  • 2018-05-01
相关资源
最近更新 更多