Help using Base SAS procedures

what is the wrong with my macro code below?

Accepted Solution Solved
Reply
Super Contributor
Posts: 338
Accepted Solution

what is the wrong with my macro code below?

Hi Forum,

Could you please help me to figure out what is the wrong with my macro code below?

%macro one (product);

proc sort data= a.unified_dataset_&product out= A_&product_sorted;

   by bank_number account_number current_date;

run;

%mend one;

%one (product=PL);

%one (product=OD);

%one (product=MTG);

When I ran the above, following error message comes.

SYMBOLGEN:  Macro variable PRODUCT resolves to PL

WARNING: Apparent symbolic reference PRODUCT_SORTED not resolved.

NOTE 137-205: Line generated by the invoked macro "ONE".

21           proc sort data= a.unified_dataset_&product out= A_&product_sorted;    by bank_number account_number current_date; run;

                                                               _

                                                               22

ERROR 22-322: Syntax error, expecting one of the following: ;, (, ASCII, BUFFNO, DANISH, DATA, DATECOPY, DETAILS, DIAG, DUPOUT,

              EBCDIC, EQUALS, FINNISH, FORCE, IN, ISA, L, LEAVE, LIST, MESSAGE, MSG, NATIONAL, NODUP, NODUPKEY, NODUPKEYS,

              NODUPLICATE, NODUPLICATES, NODUPREC, NODUPRECS, NODUPS, NOEQUALS, NORWEGIAN, NOTHREADS, OSA, OUT, OVERWRITE,

              PAGESIZE, PRESORTED, PSIZE, REVERSE, SIZE, SORTSEQ, SORTSIZE, SORTWKNO, SWEDISH, T, TAGSORT, TECH, TECHNIQUE,

              TESTHSI, THREADS, WKNO, WORKNO. 

thanks

Mirisage


Accepted Solutions
Solution
‎02-15-2013 12:40 PM
Super User
Posts: 17,784

Re: what is the wrong with my macro code below?


out= A_&product_sorted;


SYMBOLGEN:  Macro variable PRODUCT resolves to PL

WARNING: Apparent symbolic reference PRODUCT_SORTED not resolved.




You've embedded the macro variable in the middle of text, so SAS doesn't know where the macro variable ends. It thinks that the macro variable is &product_sorted.

You can specify the end of a macro variable with a period.


out= A_&product._sorted;

View solution in original post


All Replies
Solution
‎02-15-2013 12:40 PM
Super User
Posts: 17,784

Re: what is the wrong with my macro code below?


out= A_&product_sorted;


SYMBOLGEN:  Macro variable PRODUCT resolves to PL

WARNING: Apparent symbolic reference PRODUCT_SORTED not resolved.




You've embedded the macro variable in the middle of text, so SAS doesn't know where the macro variable ends. It thinks that the macro variable is &product_sorted.

You can specify the end of a macro variable with a period.


out= A_&product._sorted;

☑ This topic is SOLVED.

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

Discussion stats
  • 1 reply
  • 306 views
  • 0 likes
  • 2 in conversation