BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Rsadiq
Calcite | Level 5

Hello

 

I'm not sure what this error means,

 

 %macro step0 ;
53         data sasdata.dialerfiles;
54         set /*dialer.mcp_manual_20170124*/
55         dialer2.qual_not_on_dialer_20170222_new  ;
56         dialer2.march_dialer ;
57         run;
58         %mend step0;
59         %step0;

 

NOTE: Line generated by the invoked macro "STEP0".
59          data sasdata.dialerfiles; set  dialer2.qual_not_on_dialer_20170222_new  ; dialer2.march_dialer ; run;
                                                                                      ____________________
                                                                                      557
ERROR: DATA STEP Component Object failure.  Aborted during the COMPILATION phase.
ERROR 557-185: Variable dialer2 is not an object.

1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User

When posting log snippets, use the {i} icon/button to open a window that will preserve formatting.

 

You do have a semicolon between dialer2.qual_not_on_dialer_20170222_new and dialer2.march_dialer. Since the name.method notation is part of the hash object language (component objects), this explains the ERROR message.

View solution in original post

4 REPLIES 4
TheShark
Obsidian | Level 7

The character limit for dataset names (I believe) is 32. Try to shorten that up a little bit and let us know if it works then! It also seems to be complaining about dialer2 library not being valid? Maybe it's the long name throwing SAS off into a tizzy but you may need to look into that as well if it doesn't clear up after shortening. 

Astounding
PROC Star

You have an extra semicolon in the middle of the SET statement.  If you are reading multiple data sets on the SET statement, there should still be only one semicolon at the end.

Kurt_Bremser
Super User

When posting log snippets, use the {i} icon/button to open a window that will preserve formatting.

 

You do have a semicolon between dialer2.qual_not_on_dialer_20170222_new and dialer2.march_dialer. Since the name.method notation is part of the hash object language (component objects), this explains the ERROR message.

Kurt_Bremser
Super User

I also seriously doubt the necessity of a macro definition for what you are doing, since no dynamic code is created by the macro.

Also always test code for itself before wrapping into a macro definition. Makes debugging easier.

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

SAS Enterprise Guide vs. SAS Studio

What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.

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
  • 4 replies
  • 9765 views
  • 2 likes
  • 4 in conversation