Hi,
Can you please help me with this looping process through name stored in NAMELIST variable?
I am not sure what is missing.
Thanks a lot!
Harry
The Error notice is:
ERROR: Macro function %SCAN has too many arguments. The excess arguments will be ignored.
ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric
operand is required. The condition was: Alice
ERROR: Argument 2 to macro function %SCAN is not a number.
name 1 is
ERROR: The macro DOPRINT will stop executing.
proc sql ;
select name into :NAMELIST separated by ','
from sashelp.class
; quit;
%put &NAMELIST ;
%macro doprint;
%do i=1 %to 10;
%put name &i is %scan(&NAMELIST,&i);
%end;
%mend;
%doprint;
Commas are the delimiter in the %scan function. You have placed commas in the body of your NAMELIST variable. So each comma appearing inside Namelist is treated as a delimiter resulting in "too many" parameters.
Your shown code will work if you use "separated by ' ' " in the select into.
Or use a quoting function to "hide" the commas from that use such as
%scan(%bquote(&NAMELIST) ,&i);
This is a duplicate question. Please do not post duplicate questions. I have answered your question in your other thread at https://communities.sas.com/t5/SAS-Programming/Proc-SQL-save-multiple-value-to-macro-variable/td-p/6...
Commas are the delimiter in the %scan function. You have placed commas in the body of your NAMELIST variable. So each comma appearing inside Namelist is treated as a delimiter resulting in "too many" parameters.
Your shown code will work if you use "separated by ' ' " in the select into.
Or use a quoting function to "hide" the commas from that use such as
%scan(%bquote(&NAMELIST) ,&i);
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.