Это довольно глупый пример, но он держит эссенцию, что я пытаюсь сделать (с помощью SAS университетского издания):SAS макропеременная не может решить
data TableList;
input tables $ cols $;
cards;
tab1 col
tab2 cul
;
run;
%macro test;
proc sql;
select tables
into:tabs separated by " "
from TableList;
quit;
%do i=1 %to 2;
%let t = %scan(&tabs,&i);
proc sql;
select cols
into: col
from TableList
where tables='&t';
quit;
%put &col;
%end;
%mend;
%test;
Проблемы с этим, когда я запускаю это код Я получил это сообщение об ошибке:
WARNING: Apparent symbolic reference COL not resolved.
&col
Почему это. Не изменяет ли значение & col с его истинным значением во время выполнения?
ОБНОВЛЕНИЕ: Установка «& t» вместо «& t» решена моя проблема. Код теперь работает.
data TableList;
input tables $ cols $;
cards;
tab1 col
tab2 cul
;
run;
%macro test;
proc sql;
select tables
into:tabs separated by " "
from TableList;
quit;
%do i=1 %to 2;
%let t = %scan(&tabs,&i);
proc sql;
select cols
into: col
from TableList
where tables="&t";
quit;
%put Column &col;
%end;
%mend;
%test;