SAS宏错误180-322:语句无效或使用不正确

时间:2015-05-20 22:11:01

标签: sas sas-macro let

我正在尝试在我公司的SAS服务器上使用SAS宏语言。其余的(SAS-base)代码工作正常,但宏没有。即使是简单的%let也会导致错误(这是程序中的第一行):

5789  %let pgm = XXX ;
      -
      180
ERROR 180-322: Statement is not valid or it is used out of proper order

我检查了工具下的系统选项,'macro'选项设置为1.

有人知道如何让宏正常工作吗?

谢谢:)

1 个答案:

答案 0 :(得分:2)

我会通过运行proc选项检查宏选项:

proc options option=macro;
run;

需要在SAS调用期间设置宏选项。因此,您可能需要检查SAS会话使用的配置文件。在服务器SAS中,可能意味着与SAS管理员交谈,因为可能存在大量用于不同逻辑服务器的配置文件....

通过在调用期间指定-nomacro,我能够在PC SAS中复制结果。我认识很多讨厌宏语的人,但从来没有这么多他们真的把它关掉了。关闭宏语言后的日志是:

1    proc options option=macro;
2    run;

    SAS (r) Proprietary Software Release 9.3  TS1M2

 NOMACRO           Do not allow use of SAS macro facility

3
4    %let x=1;
     -
     180

ERROR 180-322: Statement is not valid or it is used out of proper order.