DATA Step, Macro, Functions and more

Storing a Macro variable.

Reply
Super Contributor
Posts: 276

Storing a Macro variable.

Hi Everyone..

I am Using  the following code..

Proc SQL;

select mail into : email separated by ' " " ' from dump;

quit;

filename report email from ="$$$$$$$$$@*******.com"

to="&email"

...So on..............................

My Question is ,instead of running the SQL Query Every time,I want to store that Email macro Variable permanently..

So ,Is there any way to store the macro variable permanently??

PROC Star
Posts: 7,473

Storing a Macro variable.

Posted in reply to kuridisanjeev

I've never heard of permanently storing a macro variable, but you could always wrap the code within a SAS macro (that you can store permanently), and then just call the macro whenever it is needed.  That would probably be a better choice, anyhow, as the email base is likely to change over time.

Super Contributor
Posts: 276

Storing a Macro variable.

Thank you art.

Respected Advisor
Posts: 3,156

Storing a Macro variable.

Posted in reply to kuridisanjeev

Or you could store it into a permanent text file, and put it back to a macro variable when needed:

%let email=%bquote("alkjdva@ald.com" "lajdfla@ut.com");

data _null_;

file "h:\email.txt";

put "&email";

run;

data _null_;

infile "h:\email.txt" truncover;

input email $char50.;

put email;

if _n_=1 then call symputx('email_new',email);

run;

%put &email_new;

Regards,

Haikuo

Super User
Posts: 5,504

Storing a Macro variable.

Posted in reply to kuridisanjeev

It's already stored in a temporary data set.  You just need to retrieve it:

proc sql;

create table perm.macrovar as select * from dictionary.macros where name='MY_MACRO_VARIABLE';

quit;

However, if you are dealing with long values, dictionary.macros breaks up your variable into 200-character blocks which will need to be reassembled later.

Ask a Question
Discussion stats
  • 4 replies
  • 243 views
  • 1 like
  • 4 in conversation