BookmarkSubscribeRSS Feed
RichardDeVen
Barite | Level 11

If the macro is not creating and deleting librefs you can create a mothering wrapper macro for dispatch of said macro.

 

"Mama's gonna keep baby cosy and warm" - Pink Floyd

 

Example:

 

 

%macro mother (invoke);
  %local time0 time1;
  %put NOTE: Mothering %superq(invoke);
  %let time0 = %sysfunc(datetime());
  %unquote(&invoke)
  %let time1 = %sysfunc(datetime());

  data _null_;
    call execute ('proc sql;');
    do until (last_created);
      set sashelp.vtable end=last_created;
      where memtype = 'DATA' and crdate between &time0 and &time1;
      where also libname not in ('SASHELP', 'MAPS');
      call execute ('drop table ' || cats(libname,'.',memname,';'));
    end;
    call execute ('quit;');
  run;
%mend;

%macro xyzzy ( out=, out2= );
  data &out &out2;
    z=1;
  run;
%mend;

%mother (%nrstr( %xyzzy( out=work.foo, out2=work.snafu ) ));

 

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 15 replies
  • 4526 views
  • 12 likes
  • 10 in conversation