BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Gil_
Quartz | Level 8
I have a macro that should filter start and end date ..it suppose to bring yesterday but it brings everything its an oracle platform

Data _null_;
Format c date7. E date7.;
C=datepart (datetime()));
E=c-1;
Call symput ('cdate2', "'"||vvalue(e)||"'d'");
Run;

%put &cdate2.;


Where datepart (created)>&cdate2

1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User

Oracle (and any other DBMS I know of) does not have the concept of macro variables. If you use explicit pass-through, you have to convert the code to Oracle standards first, and have macro variables resolved to Oracle-compatible formats.

View solution in original post

2 REPLIES 2
ballardw
Super User

Are you sure that the Oracle side will understand a SAS MACRO variable of form '21JAN19'd?

I don't use Oracle but have seen a number of questions here about passing macro values to Oracle that make me believe this may not be appropriate.

 

It would likely help those who know more about Oracle than I do to include your connection info and the code using this macro variable. XXXX out anything like user or password in the connection.

Kurt_Bremser
Super User

Oracle (and any other DBMS I know of) does not have the concept of macro variables. If you use explicit pass-through, you have to convert the code to Oracle standards first, and have macro variables resolved to Oracle-compatible formats.

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
  • 2 replies
  • 1354 views
  • 1 like
  • 3 in conversation