Hi everybody,
my need is to execute a proc export all the days in the programme, but i want to obtain the output file only if the day of the week is tuesday. Could you please help me?
I wrote a datastep like this but it doesn't work. Why?
data _null_;
if WEEKDAY(today())=3 then do;
PROC EXPORT DATA= RLWORK.prova
OUTFILE= "DIRECTORY"
DBMS=DLM REPLACE LABEL;
DELIMITER='3B'x;
PUTNAMES=YES;
RUN;
run;
afaik, you cannot have a proc export within a datastep. try macro programming instead.
%macro _xprt;
%if sysfunc(WEEKDAY(today())) = 3 %then %do;
PROC EXPORT DATA= RLWORK.prova
OUTFILE= "DIRECTORY"
DBMS=DLM REPLACE LABEL;
DELIMITER='3B'x;
PUTNAMES=YES;
RUN;
%end;
%mend _xprt;
%_xprt;
afaik, you cannot have a proc export within a datastep. try macro programming instead.
%macro _xprt;
%if sysfunc(WEEKDAY(today())) = 3 %then %do;
PROC EXPORT DATA= RLWORK.prova
OUTFILE= "DIRECTORY"
DBMS=DLM REPLACE LABEL;
DELIMITER='3B'x;
PUTNAMES=YES;
RUN;
%end;
%mend _xprt;
%_xprt;
Here's an example of @LinusH call execute suggestion:
data _null_;
if WEEKDAY(today())=3 then do;
Call execute ('PROC EXPORT DATA= RLWORK.prova
OUTFILE= "DIRECTORY"
DBMS=DLM REPLACE LABEL;
DELIMITER="3B"x;
PUTNAMES=YES;
RUN;');
end;
run;
Assumes of course that your outfile is substituted with something that will work. Not sure why you are using the hex "3B"x instead of
";" though.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.