Open code statement recursion detected during exporting a file

Jonsi Billups picture Jonsi Billups · Nov 2, 2015 · Viewed 10k times · Source

I try to export a file in SAS but I get "Open code statement recursion detected." error. Since I export more than one files depending on date I define as a macro variable based on the prompt date, I want to name my file to be exported with this variable but it does not work. I would really appreciate if anyone helps me.

rep_date = 30APR2015:00:00:00
 Outfile = work.A042015.sas7

%let var = CATS("A",MONTH(DATEPART(&rep_date)),YEAR(DATEPART(&rep_date)));
data WORK.&var(compress=yes); 
set WORK.have;
run; 

Answer

Tom picture Tom · Nov 2, 2015

Macro variables are just strings. So if you want to execute functions in macro code you need to wrap the function inside of the %SYSFUNC() macro function.

%let rep_date='01JAN2015:01:23'dt ;
%let dsname = A%sysfunc(datepart(&rep_date),monyy6);
data &dsname(compress=yes);
  set have;
run;