Hello,
I wonder why this does not add double quotes to name string.
data _null_; set sashelp.class; put name; run; data _null_; set sashelp.class; put "||name||"; run;
You surround the expression
|| name ||
by quotes, which means sas willl treat it as a literal to be written by your put statemet.
Try
put name $quote10. ;
which applies the $quote format to name. Since name is 8 bytes, I use 10 as the size attribute of the $quote format.
Mark
You surround the expression
|| name ||
by quotes, which means sas willl treat it as a literal to be written by your put statemet.
Try
put name $quote10. ;
which applies the $quote format to name. Since name is 8 bytes, I use 10 as the size attribute of the $quote format.
Mark
@mkeintz Thank you. I was asking this question in reference to use of variable in CALL EXECUTE routine. In example below, memname is not treated as literal.
data _null_; set _dsets_; call execute ( 'proc print data=sugi30.' || trim(memname) || '(obs=50); title ''First 50 observations of data set ' || trim(memname) || '''; run;' ); run;
If you're trying to put quotes around the memname when it appears in the title, then use the put function, with $quote as 2nd argument, in the place where the variable memname appears in the title statement:
data _null_;
set _dsets_;
call execute
(
'proc print data=sugi30.' ||
trim(memname) ||
'(obs=50); title ''First 50 observations of data set ' ||
put(memname,$quote10.) || '''; run;'
) ;
run;
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.