## Problem of parameter with Parentheses

Solved
Regular Contributor
Posts: 222

# Problem of parameter with Parentheses

Hi guys,

If I run the following SAS code ,because there is a "(" in the parameter, I can't get the result I need . please help.

Thanks!

%macro test(a);
%put value of a is: &a;
%mend test;

%test(a=njhl5u#\$%^&*(IJK44t95y7u45n64);/*this one doesn't work*/

Accepted Solutions
Solution
‎08-28-2012 03:54 PM
PROC Star
Posts: 8,167

## Re: Problem of parameter with Parentheses

Mike,

I sent you a solution in your previous thread, but I'll repeat it here:

%macro test(a);

%let a2=%nrbquote(&a);

%put a: &a2;

%mend test;

%test(a=aa)

%test(a=njhl5IJK44t95y7u45n64)

%test(a=%str(njhl5u#\$%^&*%(IJK44t95y7u45n64))

Art

All Replies
Solution
‎08-28-2012 03:54 PM
PROC Star
Posts: 8,167

## Re: Problem of parameter with Parentheses

Mike,

I sent you a solution in your previous thread, but I'll repeat it here:

%macro test(a);

%let a2=%nrbquote(&a);

%put a: &a2;

%mend test;

%test(a=aa)

%test(a=njhl5IJK44t95y7u45n64)

%test(a=%str(njhl5u#\$%^&*%(IJK44t95y7u45n64))

Art

Super User
Posts: 6,785

## Re: Problem of parameter with Parentheses

Mike,

You properly identified the problem as the unbalanced parenthesis.  Art properly identified one possible solution, although his example illlustrates how quoting functions require you to refer to ( as %( within the quoting function.

If it is an acceptable solution, get rid of the macro definition.

%let a=njhl5u#\$%^&*(IJK44t95y7u45n64;

%put &a;

A partial solution might be possible as well:

%let a=njhl5u#\$%^&*(IJK44t95y7u45n64;

%test (a=%superq(a))

Does this help at all?

🔒 This topic is solved and locked.