BookmarkSubscribeRSS Feed
garag
Calcite | Level 5


Hi,

I'm trying to set a variable reading from a dataset some clumns value that should contains strange char as a single quote (') or &.

example:

data inputds;
   aaa = "aaa'aaa";
   bbb = 'bbb';
   ccc = "ccc'ccc'ccc";
   ddd = 'dd&dd';
run;


proc sql noprint;
  select aaa, bbb, ccc, ddd into :vara, :varb, :varc, :vard from inputds;
quit;

If I run
%put &vara;
%put &varb;
%put &varc;
%put &vard;

Sas does not work. Do there is a way to populate some variables in a safety way independently by what is is contains?

Many thanks

Regards,

Antonio

1 REPLY 1
Astounding
PROC Star

You can always get tricky characters into macro variables,.  As you have found out, utilizing them later may be difficult.

Just to display them, you can use:

%put %superq(vara);

%put %superq(varb);

%put %superq(varc);

%put %superq(vard);

In general, macro quoting functions such as %SUPERQ can temporarily mask the tricky characters.  Depending on how you want to use these values, you might need different quoting functions at various points within your code.

Good luck.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

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