DATA Step, Macro, Functions and more

IF then else

Accepted Solution Solved
Reply
Occasional Contributor Bal
Occasional Contributor
Posts: 18
Accepted Solution

IF then else

Why below append and contents prod does not work inside do loop?

........................................

%if &error='NO' %then %do;*Macro error has 'NO'.
%let message=&message;*I have message defined aleady;
proc contents data=record;*I already have record dataset;
proc append base=updates data=record;
run;
%end;

 

If i run above code inside macro data 'record' does not append to the 'updates' table.


Accepted Solutions
Solution
‎04-01-2016 05:49 PM
Super User
Super User
Posts: 6,500

Re: IF then else

[ Edited ]

Does the macro variable ERROR contain the value NO or does it also contain the surrounding single quotes?

Your code is checking for the value 'NO' not for the value NO.

View solution in original post


All Replies
Super User
Posts: 10,500

Re: IF then else

It will help to show the entire macro and how you assign a value to &error.

 

As a debug tool use:

 

options mprint symbolgen;

and then run the macro. The post the results from the log.

Solution
‎04-01-2016 05:49 PM
Super User
Super User
Posts: 6,500

Re: IF then else

[ Edited ]

Does the macro variable ERROR contain the value NO or does it also contain the surrounding single quotes?

Your code is checking for the value 'NO' not for the value NO.

Occasional Contributor Bal
Occasional Contributor
Posts: 18

Re: IF then else

I have created NO as below:

call symput('error', 'NO');

Occasional Contributor Bal
Occasional Contributor
Posts: 18

Re: IF then else

Thank you very much. Problem was I put single quote. So this means we don't need any quote even if it is character value for macro variable. Now it's working without quote.
☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 270 views
  • 0 likes
  • 3 in conversation