Hello, I am trying to use a macro within CALL EXECUTE. The source data for the macro is a data set with two fields: Group and Employer. Group never has any special characters, but Employer may have an apostrophe. When I run the following code, I get the following error: ERROR: Expected close parenthesis after macro function invocation not found. This is a simplified version of my macro: %macro test (Group,Employer);
proc sql;
create table test as
select distinct
MemberID
,"&Employer" as Employer
,"&Group" as Group
from Membership
where EmployerID like "&Group%"
and Date between "01Jan2017"d and "31Dec2017"d
;quit;
%mend; This is the CALL EXECUTE code: data _null_;
set work.list;
call execute('%nrstr(%deductible(
'||strip(Group)||'
,'||strip(Employer)||'
);)');
run; As long as there are no special characters in the Employer field, my code runs without problem. The macro runs without problem, even with apostrophes, with: %test (123456,%bquote(O'Test Employer)); So I tried to use: data _null_;
set work.list;
call execute('%nrstr(%deductible(
'||strip(Group)||'
,%bquote('||strip(Employer)||')
);)');
run; How can I get SAS to ignore any apostrophes that my come up in the Employer field? Any help is appreciated, thank you!
... View more