DATA Step, Macro, Functions and more

a bug with SAS macro?! (SAS8.2 for windows)

Reply
N/A
Posts: 1

a bug with SAS macro?! (SAS8.2 for windows)

submit the following:

%let name=%quote(aaa'ggg);
%put &name;

and then issue %put &name; again, the screen displays
aaa'ggg);%put &name;';

which is not strange since ' is not paired, then submit the following:

%let name=%quote(aaa'ggg');
%put &name;

the screen displays error/warning:
%let name=%quote(aaa'ggg');
NOTE: A missing equals sign has been inserted after the variable name NAME.
%put &name;
ERROR: Open code statement recursion detected.

If then issue %put &name; to check what's in the macro name, the screen displays
=aaa'ggg';;

Question:
(1) The above execution result is very odd to me. Why would the initial error last for ever?
(2) Why would the macro name be assigned that way at the end?
(3) Why would the system complain "recursion detected"?
SAS Employee
Posts: 58

Re: a bug with SAS macro?! (SAS8.2 for windows)

http://swwafs.unx.sas.com/dept/pub/doc/902/gpp/prods/mcrolref/win/mcrolref.hlp/z3514quote.htm

The %quote function only masks single quotes when they occur in pairs, UNLESS you proceed one with a %.
SAS Employee
Posts: 58

Re: a bug with SAS macro?! (SAS8.2 for windows)

Oops, that link above only works internally. Try this one...


http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/z3514quote.htm
Ask a Question
Discussion stats
  • 2 replies
  • 127 views
  • 0 likes
  • 2 in conversation