Я пытался создать макрос для вывода списка всех переменных определенного набора данных. В моем макросе я использую PROC SQL. Код работает нормально за пределами %macro
, но сообщение об ошибке говорит, что оператор SELECT
недопустим, когда он используется в %MACRO
вот пример:
proc sql noprint;
select name into :vlist separated by ' '
from dictionary.columns
where memname = upcase("&dsn");
quit;
%put &vlist;
выше работает отлично;
но
%macro getvars(dsn);
%local vlist;
proc sql noprint;
select name into :vlist separated by ' '
from dictionary.columns
where memname = upcase("&dsn");
quit;
&vlist;
%mend;
вышесказанное не работает, когда я пытался это сделать:
%let var_list = %getvars(dataset);
возвращает:
ОШИБКА 180-322: оператор недействителен или используется не по порядку.
подчеркивая оператор SELECT
в PROC SQL