Было бы очень полезно, если бы вы указали, что вы пытаетесь сделать, но быстрый метод - использовать SQL
proc sql NOPRINT;
select name into :name_list separated by ""
from sashelp.class;
quit;
%put &name_list.;
Как вы указали, макропеременные имеют ограничение на размер ( 64k символов) в большинстве установок сейчас. В зависимости от того, что вы делаете, лучшим методом может быть создание макроса, который помещает весь список по мере необходимости туда, где когда-либо требуется go динамически, но вам нужно будет объяснить использование, чтобы кто-нибудь предложил этот вариант. Это отвечает на ваш вопрос в том виде, в каком он был опубликован.
Попробуйте это, используя параметр VARCHAR (). Если вы используете более старую версию SAS, это может не работать.
data _null_;
set sashelp.class(keep = name) end=eof;
length long_var varchar(1000000);
length want $256.;
retain long_var;
long_var = catt(long_var, name);
if eof then do;
want = md5(long_var);
put want;
end;
run;