%let srclib=SASHELP;
%let tgtlib=WORK;
proc sql noprint;
create table COPYLIST(where=(length(RENAME) <=32)) as
select MEMNAME, compress(catx("_",MEMNAME,put(datetime(),datetime16.)),":") as
rename from DICTIONARY.TABLES
where
upcase(LIBNAME)="&srclib." and upcase(MEMTYPE)='DATA';
select count(MEMNAME) into :n from COPYLIST;
%let n=&n.;
select MEMNAME, RENAME into :MEM1-:MEM&n, :REN1-:REN&n. from COPYLIST;
quit;
%macro CopyThenRename;
proc datasets lib=&srclib. nolist;
copy out=&tgtlib. MT=DATA;
select %do i=1 %to &n.; &&mem&i. %end; ;
quit;
proc datasets lib=&tgtlib. nolist;
change
%do i=1 %to &n.;
&&mem&i. = &&ren&i.
%end; / mt=data;
run;
quit;
%mend;
%CopyThnRname;
... View more