[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sas-l
Subject:    SAS Forum: How to pass SAS observation value in macro one by one
From:       Roger DeAngelis <rogerjdeangelis () GMAIL ! COM>
Date:       2017-06-29 20:27:44
Message-ID: 5860065026206198.WA.rogerjdeangelisgmail.com () listserv ! uga ! edu
[Download RAW message or body]

SAS Forum: How to pass SAS observation value in macro one by one

  Running two proc prints based on meta data of dataset names

  WORKING CODE
  ============

     COMPILE if _n_=0 then DOSUBL
        * get meta data;
        select quote names into :names
     MAIN
        do names
      DOSUBL
           proc print data=name
     MAIN
         if syserr stop printing datasets
     end
see
https://goo.gl/sH1Wdq
https://communities.sas.com/t5/Base-SAS-Programming/How-to-pass-SAS-observation-value-in-macro-one-by-one/m-p/371683



data meta;
  input sd1 $;
cards4;
class
cars
iris
;;;;
run;quit;


%symdel sd1 rct dsn;
data _null_;

  * get meta data;
  if _n_=0 then do;
     %let rc = %sysfunc(dosubl('
        proc sql;
           select
              quote(sd1)
           into
              :sd1 separated by ","
           from
              meta
        ;quit;
     '));
   end;

   do dsns=&sd1;
      call symputx('dsn',dsns);
      rc=dosubl('
         proc print data=sashelp.&dsn;
         run;quit;
         %let rct=&syserr;
      ');

     if input(symget('rct'),6.) eq 0 then putlog  dsns " printed  sucessfully";
     else do;
       putlog  dsn " print failed stopping on " dsns;
       stop;
     end;

   end;

run;quit;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic