SAS macro ERROR 180-322: оператор недействителен или используется не по порядку

Я пытаюсь использовать макроязык 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 ответ

Я бы проверил параметр макроса, запустив опции proc:

proc options option=macro;
run;

Опция макроса должна быть установлена ​​во время вызова SAS. Поэтому вам может потребоваться проверить файл конфигурации, используемый в сеансе SAS. На сервере SAS это может означать разговор с администратором SAS, так как может быть множество файлов конфигурации для разных логических серверов....

Я смог скопировать ваши результаты в PC SAS, указав -nomacro во время вызова. Я знаю множество людей, которые ненавидят макроязык, но никогда так сильно, что они его отключают. Мой журнал после отключения макроязыка:

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.
Другие вопросы по тегам