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.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.