The way I have been solving this is through a %scan e.g

proc sql;
select count(var), var into :no_rows, :varlist separated by ' '
from driver_tbl;
quit;

data outtable;
set intable;
%do i = 1 %to &no_rows;
%let current = %scan(&varlist,&i);
/* some procesing of intable using &current */
%end;
run;

This should work with all types of variables.