****generate sample data sets***;
libname s 'c:\temp';
data s.t1 s.t2 s.t3;
do i=1 to 20;
x=ranuni(123);
if x<=0.3 then output s.t1;
else if x<=0.6 then output s.t2;
else output s.t3;
end;
run;
%macro patchitall(lib=);
proc sql noprint;
select memname into: dsn1 -: dsn30000
from dictionary.tables
where libname="%upcase(&lib)"
;
%let n=&sqlobs;
quit;
%do i=1 %to &n;
data &lib..&&dsn&i;
set &lib..&&dsn&i;
*****define your operation here***;
y=1+x;
run;
%end;