Hi,
I'm trying to do a do loop with proc sql. The following part of the script gives an error message:
%let totalobs = 100;
%let totalobs = &totalobs. + 1;
%put totalobs;
ERROR: Open code statement recursion detected.
Does anyone know what the issue is?
Thank you!
Your code works fine
%let totalobs = 100;
%let totalobs = &totalobs. + 1;
%put totalobs=&totalobs;
/*or*/
%let totalobs = 100;
%let totalobs = %eval(&totalobs. + 1);
%put totalobs=&totalobs;
Your code works fine
%let totalobs = 100;
%let totalobs = &totalobs. + 1;
%put totalobs=&totalobs;
/*or*/
%let totalobs = 100;
%let totalobs = %eval(&totalobs. + 1);
%put totalobs=&totalobs;
I still get the same error
Try to restart SAS and rerun
Here is my log:
1840 %let totalobs = 100;
1841
1842 %let totalobs = &totalobs. + 1;
1843
1844 %put totalobs=&totalobs;
totalobs=100 + 1
1845
1846
1847 /*or*/
1848
1849 %let totalobs = 100;
1850
1851 %let totalobs = %eval(&totalobs. + 1);
1852
1853 %put totalobs=&totalobs;
totalobs=101
It works. Thank you so much
You might get that message if you made the mistake of omitting the first semicolon at the end of the first %LET statement. If that's not the cause, we might need to see the log including the SQL piece.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.