Локальное выполнение в чистом сеансе:
%let x = %str(put(age, best.));
proc sql;
select &x from sashelp.class;
quit;
Это приводит к следующей ошибке:
1 put(age, best.)
----
22
----
76
ERROR 22-322: Syntax error, expecting one of the following: a format name, ?.
ERROR 76-322: Syntax error, statement will be ignored.
Но эта версия с "ручным разрешением" работает без примечаний, предупреждений или ошибок:
proc sql;
select put(age, best.) from sashelp.class;
quit;
Может кто-нибудь точно объяснить, что% str () делает в этой программе, что вызывает проблему во время выполнения?Извиняюсь за расплывчатый вопрос, но я не уверен, каковы соответствующие взаимодействия;Я не могу выполнить репликацию с использованием эквивалентного синтаксиса шага данных, поэтому, возможно, задействованы особенности SQL в proc?