Hey folks, I just started to learn macro and want to accomplish a few things with my current codes. 1. dynamic import many csv files into sas (which should be done) 2. combining the imported data file and make it into one giant file. The first part works well however the second part (bold) does not work and has the log errors. I basically used the same code but don't why there is the Statement is not valid or it is out of proper order Any comment will be greatly appreciated!! Part1: *CASE base Upload/ %macro import_data(ProviderID=); proc import datafile="/PROJECTS/BMW/3D/RAW/CASE/BASE/&ProviderID._CASE_Base.csv" dbms=csv out=Raw._&ProviderID replace; run; %mend import_data; data data_torun; input filenum; datalines; 0 1389 2690 3163 3168 3169 ;;;; run; proc sql; select cats('%import_data(ProviderID=',filenum,')') into :listtorun separated by ' ' from data_torun; quit; &listtorun.; Part 2: *Combine CASE File/ proc datasets library=Raw nolist; %macro Combine_data(ProviderID=); append base=Raw._0 data=Raw._&ProviderID force; run; %mend Combine_data; data data_torun1; input filenum; datalines; 1389 2690 3163 3168 3169 ;;;; run; proc sql; select cats('%Combine_data(ProviderID=',filenum,')') into :listtorun1 separated by ' ' from data_torun1; quit; &listtorun1.; Log NOTE: Compression was disabled for data set WORK.DATA_TORUN1 because compression overhead would increase the size of the data set. NOTE: The data set WORK.DATA_TORUN1 has 5 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds 4046 &listtorun1.; NOTE: Line generated by the invoked macro "COMBINE_DATA". 4046 append base=Raw._0 data=Raw._&ProviderID force; ------ 180 MPRINT(COMBINE_DATA): append base=Raw._0 data=Raw._1389 force; ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(COMBINE_DATA): run; NOTE: Line generated by the invoked macro "COMBINE_DATA". 4046 append base=Raw._0 data=Raw._&ProviderID force; ------ 180 MPRINT(COMBINE_DATA): append base=Raw._0 data=Raw._2690 force; ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(COMBINE_DATA): run; NOTE: Line generated by the invoked macro "COMBINE_DATA". 4046 append base=Raw._0 data=Raw._&ProviderID force; ------ 180
... View more