DATA Step, Macro, Functions and more

How do I pass two long strings to a macro?

Reply
New Contributor
Posts: 2

How do I pass two long strings to a macro?

I want to pass two long strings into a sas macro, like this:

%some_macro(first=this is quite a long string, two=and so is this);

I can define macros where I pass an argument like the first, but if I have two arguments like this it seems SAS gets confused, and I get errors about strings being 262 characters or longer. I suspect I should be using some sort of quoting or something, but I'm not sure exactly what to use. Any ideas?

Mark

PROC Star
Posts: 7,363

How do I pass two long strings to a macro?

Mark,

It would help if you posted an example of code that produces the error.

New Contributor
Posts: 2

How do I pass two long strings to a macro?

%macro

two(first=,second=);

title

"&first &second"

;

proc freq data=hsurvey2.hsa05_adult_public;

table year;

run;

%mend

two;

%two(first=this is a long string, second=and so is this);


It turns out that this works fine. The problem in my code is something else entirely. I'll try to track that down.

Super User
Super User
Posts: 6,500

How do I pass two long strings to a macro?

There is a limit on the length of a macro variable.  Should be around 32,000.

The error message you report can be suppressed by using the option NOQUOTELENMAX.

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a002233891.htm

You would see it if your macro did something like.

data out;

   var1="&first";

run;

Ask a Question
Discussion stats
  • 3 replies
  • 192 views
  • 3 likes
  • 3 in conversation